为什么用另一种方式声明数组不能正常工作?

时间:2012-08-20 06:53:19

标签: php arrays

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 [])

2 个答案:

答案 0 :(得分:1)

array_unique()返回一个数组,所以如果你将它分配给另一个变量($colors),该变量也将是一个数组。

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

答案 1 :(得分:0)

$a []= $b表示“将$b追加到数组$a”。

$a = $b表示“设置$a以引用$b”。


要更直接地回答您的问题,可以说出$colors = $b[1],但这意味着“让$colors引用1$b的元素{1}}“和”将1中索引$b处的元素添加到数组$colors“。

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