我有一个数组,我正在测试重复值。我想得到一个只有重复值的数组,给用户一个错误信息,注意哪些是有问题的值。我试过了
$duplicates = array_diff( $array_with_dupes, array_unique($array_with_dupes) );
但是这并没有返回唯一的重复值 - 而是我得到了一个空数组。
这是一种简单的方法吗?
答案 0 :(得分:8)
$arr = array('a','a','b','c','d','d','e');
$arr_unique = array_unique($arr);
$arr_duplicates = array_diff_assoc($arr, $arr_unique);
print_r($arr_duplicates);
以上将返回
Array
(
[1] => a
[5] => d
)
答案 1 :(得分:3)
答案为here(使用array_diff_assoc
代替array_diff
):
array_unique( array_diff_assoc( $array, array_unique( $array ) ) );
答案 2 :(得分:0)
<?php
$a = array(1,2,3,4);
$b = array(2,3);
var_dump(
array_intersect($a,$b)
);
//Outputs 2,3 as expected.
?>