获取重复数组值的数组

时间:2012-01-26 16:14:36

标签: php arrays

我有一个数组,我正在测试重复值。我想得到一个只有重复值的数组,给用户一个错误信息,注意哪些是有问题的值。我试过了

$duplicates = array_diff( $array_with_dupes, array_unique($array_with_dupes) );

但是这并没有返回唯一的重复值 - 而是我得到了一个空数组。

这是一种简单的方法吗?

3 个答案:

答案 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)

使用array_intersect;

<?php
$a = array(1,2,3,4);

$b = array(2,3);

var_dump(
    array_intersect($a,$b)
    );
//Outputs 2,3 as expected.
?>