在php中只在关联数组中查找重复值

时间:2014-12-02 12:51:24

标签: php arrays multidimensional-array associative-array

这是我的数组输出 -

print_r($array_email);

    Array
(
    [1] => Array
        (
            [0] => vikastyagi87@gmail.com
            [1] => vikastyagi87@gmail.com
            [2] => vikastyagi87@gmail.com
            [3] => v@gmail.com
            [4] => v@gmail.com
        )

    [2] => Array
        (
            [0] => vikastyagi87@gmail.com
        )

    [3] => Array
        (
            [0] => vikastyagi1987@gmail.com
        )

    [4] => Array
        (
            [0] => vikastyagi1987@gmail.com
        )

)

我在这里试过 - (但没有工作)

function get_duplicates( $array ) {
                return array_unique( array_diff_assoc( $array, array_unique( $array ) ) );
            }

print_r(get_duplicates($array_email));

我需要像那样的输出 -

Array
    (
        [1] => Array
            (
                [1] => vikastyagi87@gmail.com
                [2] => vikastyagi87@gmail.com
                [4] => v@gmail.com
            )

        [2] => Array
            (
                [0] => vikastyagi87@gmail.com
            )
        [4] => Array
            (
                [0] => vikastyagi1987@gmail.com
            )

    )

2 个答案:

答案 0 :(得分:3)

如果我理解你的要求:

array_map(function($elem) {
    return array_unique($elem);
});

答案 1 :(得分:0)

你必须这样做:

array_walk($arr, function(&$value) {
    $value = array_unique($value);
});

$arr = array_unique($arr, SORT_REGULAR);

array_walk将删除内部数组中的重复项。 array_unique将完成剩下的工作。