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


当前回答

array_unique()函数的替代方法。

使用蛮力算法

//[1]这个数组包含重复的项

火柴美元=[“乔治”、“梅尔文chelsy”梅尔文”、“乔治”,“史密斯”];

//[2]新数组的容器,不包含任何重复项

$arr = [];

//[3]获取复制数组的长度,并将其设置为用于for循环的var len

$len = count($matches);

//[4]如果匹配数组键($i)当前循环迭代不可用 //[4]数组$arr然后推送匹配的当前迭代键值[$i] //[4]到数组arr。

(我= 0;我美元 If (array_search($匹配[$i], $arr) === false){ array_push (arr美元,$ matches [$ i]); } } //打印数组$arr。 print_r (arr); / /结果:数组 ( [0] => jorge [1] => melvin [2] =>切尔西 史密斯 )

其他回答

<?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 = array_values( array_flip( array_flip( $array ) ) );

可以比array_unique快。

使用array_unique()。

例子:

$array = array(1, 2, 2, 3);
$array = array_unique($array); // Array is now (1, 2, 3)

array_unique()函数的替代方法。

使用蛮力算法

//[1]这个数组包含重复的项

火柴美元=[“乔治”、“梅尔文chelsy”梅尔文”、“乔治”,“史密斯”];

//[2]新数组的容器,不包含任何重复项

$arr = [];

//[3]获取复制数组的长度,并将其设置为用于for循环的var len

$len = count($matches);

//[4]如果匹配数组键($i)当前循环迭代不可用 //[4]数组$arr然后推送匹配的当前迭代键值[$i] //[4]到数组arr。

(我= 0;我美元 If (array_search($匹配[$i], $arr) === false){ array_push (arr美元,$ matches [$ i]); } } //打印数组$arr。 print_r (arr); / /结果:数组 ( [0] => jorge [1] => melvin [2] =>切尔西 史密斯 )

在PHP中从关联数组中删除重复值。

$arrDup = Array ('0' => 'aaa-aaa' , 'SKU' => 'aaa-aaa' , '1' => '12/1/1' , 'date' => '12/1/1' , '2' => '1.15' , 'cost' => '1.15' );

foreach($arrDup as $k =>  $v){
  if(!( isset ($hold[$v])))
      $hold[$v]=1;
  else
      unset($arrDup[$k]);
}

数组([0]= > aaa-aaa [1] = > 12/1/1 [2] = > 1.15)