如何删除数组中的重复项?
例如,如果我有以下数组:
$array = array('1','1','2','3');
我希望它成为
$array = array('2','3');
所以我希望它在找到两个值时删除整个值
最佳答案
根据 PHP 版本,这应该适用于所有版本的 PHP >= 4.0.6,因为它不需要需要 PHP >= 5.3 的匿名函数:
function moreThanOne($val) {
return $val < 2;
}
$a1 = array('1','1','2','3');
print_r(array_keys(array_filter(array_count_values($a1), 'moreThanOne')));
DEMO (更改下拉的PHP版本选择你使用的PHP版本)
之所以可行,是因为:
-
array_count_values
将遍历数组并为每个值创建一个索引,并在每次再次遇到它时递增它。 -
array_filter
将获取创建的数组并将其传递给之前定义的moreThanOne
函数,如果它返回false
,则键/值对将被删除。 -
array_keys
将丢弃数组的value
部分,创建一个数组,其值是已定义的键。这最后一步为您提供了一个结果,即删除了在原始数组中多次存在的所有值。
关于php - 如何删除数组中的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16372292/