array_unique没有给出正确的输出

时间:2017-09-12 12:15:42

标签: php arrays duplicates

这样可以得到像

的结果
  

数组([0] => 5000 [1] => 5001 [2] => 3000 [3] => 3001 [4] => 5000)

当我使用array_unique时,获得相同的结果

  

数组([0] => 5000 [1] => 5001 [2] => 3000 [3] => 3001 [4] => 5000)

foreach($detail as $key => $value){
            array_push($zips, $value);  
            }   
}

array_unique($zips);

2 个答案:

答案 0 :(得分:6)

array_unique()不能通过引用工作。这意味着,它实际上不会修改原始数组,只返回一个具有相应修改的新数组。您需要将其输出保存为新的(或相同的)变量:

foreach($detail as $key => $value){
    array_push($zips, $value);  
}   

$zips = array_unique($zips);

详细了解Passing by Reference

答案 1 :(得分:1)

不需要foreacharray_push,只需应用并保存到所需的变量$zips

$zips = array_unique(array_values($zips));