当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何从PHP中删除数组中的重复值》经验,为你挑选了6个好方法。

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



1> Jeremy Ruten..:

使用array_unique().

例:

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


@Ian - `注意,array_unique()不适用于多维数组
以上将保留元素的键.如果你想重新索引它们,另外应用array_values:http://www.php.net/manual/en/function.array-values.php
这对我不好用,请使用:`$ array = array_unique($ array,SORT_REGULAR);`

2> chim..:
//Find duplicates 

$arr = array( 
    'unique', 
    'duplicate', 
    'distinct', 
    'justone', 
    'three3', 
    'duplicate', 
    'three3', 
    'three3', 
    'onlyone' 
);

$unique = array_unique($arr); 
$dupes = array_diff_key( $arr, $unique ); 
    // array( 5=>'duplicate', 6=>'three3' 7=>'three3' )

// count duplicates

array_count_values($dupes); // array( 'duplicate'=>1, 'three3'=>2 )



3> 小智..:

使用 array_values(array_unique($array));

array_unique:对于唯一数组 array_values:用于重建索引



4> iniravpatel..:

唯一对我有用的是:

$array = array_unique($array, SORT_REGULAR);

编辑:SORT_REGULAR保持原始数组的顺序。



5> Amr Berag..:
$result = array();
foreach ($array as $key => $value){
  if(!in_array($value, $result))
    $result[$key]=$value;
}



6> AgelessEssen..:

有时array_unique()不是这样,如果你想得到独特的和重复的项目 ......

$unique=array("","A1","","A2","","A1","");
$duplicated=array();

foreach($unique as $k=>$v) {

if( ($kt=array_search($v,$unique))!==false and $k!=$kt )
 { unset($unique[$kt]);  $duplicated[]=$v; }

}

sort($unique); // optional
sort($duplicated); // optional

结果

array ( 0 => '', 1 => 'A1', 2 => 'A2', ) /* $unique */

array ( 0 => '', 1 => '', 2 => '', 3 => 'A1', ) /* $duplicated */

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有