删除多维数组中的重复值

时间:2012-02-23 08:05:00

标签: php arrays multidimensional-array

所有 我想从此数组中删除重复值

Array
(
    [0] => Array
        (
            [0] => Ajay Patel
            [1] => Tag 1
        )

    [1] => Array
        (
            [0] => Tag 1
            [1] => Tag 3
        )

    [2] => Array
        (
        )

    [3] => Array
        (
        )

    [4] => Array
        (
        )

)

我从How to remove duplicate values from a multi-dimensional array in PHP

尝试了这个解决方案

$ result2 = array_map(“unserialize”,array_unique(array_map(“serialize”,$ result2)));

但我觉得这里出了点问题,我得到了这个结果。

Array
(
    [0] => Array
        (
            [0] => Ajay Patel
            [1] => Tag 1
        )

    [1] => Array
        (
            [0] => Tag 1
            [1] => Tag 3
        )

    [2] => Array
        (
        )

)

我想要的是

Array
            (
                [0] => Ajay Patel
                [1] => Tag 1
                [2] => Tag 3
            )

标签1已被删除,因为它有2次......

3 个答案:

答案 0 :(得分:2)

试试这个

$result = array();
function merge_values(array &$array, $mixed) {
    if(is_array($mixed)) {
        foreach($mixed as $tags) {
            merge_values($array, $tags);
        }
    }
    else {
        if(null !== $mixed && strlen($mixed) > 0 && false === array_search($mixed, $array)) {
            $array[] = $mixed;
        }
    }
}

merge_values($result, $array);
print_r($result);

答案 1 :(得分:2)

$result2 = array_unique(call_user_func_array('array_merge',$result2)); 

答案 2 :(得分:1)

我认为你应该试试这个

function uniqueElements($outerArray){
    $result=array();
    foreach ($outerArray as $innerArray){
      $result=array_merge($innerArray);
    }

return array_unique($result);
}