-1
foreach ($this->getGalleryImages() as $_image){
            $a=explode('/',$_image->getPath());
            $b=explode('-',$a[count($a)-1]);
            $colors[]=$b[1];                
        }

为什么我不能更改$colors[]=$b[1];$colors=$b[1];. 但这$color=array_unique($colors);没关系。$color 它没有[]($color[])

4

2 回答 2

1

array_unique()返回一个数组,因此如果将其分配给另一个变量 ( $colors),该变量也将是一个数组。

$b[1]仅给出数组的一个元素 - 将其分配给另一个变量,您将得到一个“简单”变量,而不是数组。在这种情况下,要获取一个数组,您必须将该值作为一个条目添加到$colors(通过写入[]并再次使其成为一个数组)。

于 2012-08-20T06:56:52.147 回答
0

$a []= $b意思是“附加$b到数组$a”。

$a = $b意思是“设置$a参考$b”。


为了更直接地回答您的问题,您可以$colors = $b[1],但这意味着“让$colors引用索引处的元素1$b,而不是“将索引处的元素添加1$b数组中$colors”。

array_unique将唯一值作为数组返回。因此,您会将唯一值数组分配给$colors.

于 2012-08-20T06:56:35.327 回答