如何从PHP数组中删除重复值?


当前回答

这是一个很好的方法。可能要确保它的输出又回到一个数组。现在只显示最后一个唯一值。

试试这个:

$arrDuplicate = array ("","",1,3,"",5);

foreach (array_unique($arrDuplicate) as $v){
  if($v != "") { $arrRemoved[] = $v; }
}
print_r ($arrRemoved);

其他回答

$array = array("a" => "moon", "star", "b" => "moon", "star", "sky");

// Deleting the duplicate items
$result = array_unique($array);
print_r($result);

参考:演示

<?php
$a=array("1"=>"302","2"=>"302","3"=>"276","4"=>"301","5"=>"302");
print_r(array_values(array_unique($a)));
?>//`output -> Array ( [0] => 302 [1] => 276 [2] => 301 )`

使用元素(array_unique(数组)美元);

Array_unique:用于唯一数组 Array_values:用于索引

有多种方法可以做到这一点,如下所示

//first method
$filter = array_map("unserialize", array_unique(array_map("serialize", $arr)));

//second method
$array = array_unique($arr, SORT_REGULAR);

在这里,我创建了第二个空数组,并使用for循环与第一个数组有重复。它将运行与第一个数组的计数相同的时间。然后使用in_array与第一个数组的位置进行比较,并匹配它是否已经具有该项。如果不是,它会用array_push将该项添加到第二个数组中。

$a = array(1,2,3,1,3,4,5);
$count = count($a);
$b = [];
for($i=0; $i<$count; $i++){
    if(!in_array($a[$i], $b)){
        array_push($b, $a[$i]);
    }
}
print_r ($b);