如何从PHP数组中删除重复值?
当前回答
根据数组的大小,我发现
$array = array_values( array_flip( array_flip( $array ) ) );
可以比array_unique快。
其他回答
使用元素(array_unique(数组)美元);
Array_unique:用于唯一数组 Array_values:用于索引
爆炸(”、“内爆”、“,array_unique(爆炸(”、“YOUR_ARRAY美元))));
这将负责键关联,并将生成的新数组的键序列化:-)
我们可以创建这样的数组来使用,最后一个值将被更新为列值或键值,我们将从数组中获得唯一的值…
$array = array (1,3,4,2,1,7,4,9,7,5,9);
$data=array();
foreach($array as $value ){
$data[$value]= $value;
}
array_keys($data);
OR
array_values($data);
使用array_unique()。
例子:
$array = array(1, 2, 2, 3);
$array = array_unique($array); // Array is now (1, 2, 3)
有时候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 */