从多维数组中删除重复的子数组

时间:2018-11-06 10:37:39

标签: php arrays

我知道您可能会认为这是一个重复的问题,也许是这样,但是我发现没有任何东西似乎可以对我的数组进行实际排序。我已经建立了数组,输出看起来像这样:

]

我尝试使用以下两种方法摆脱dupe子数组:

Array => [
    [1] => [
        [1] => [
            'foo' => 'bar',
            'foobar' => 'foo'
        ],
        [2] => [
            'foo' => 'bar',
            'foobar' => 'foo'
        ],
        [3] => [
            'foo' => 'bar',
            'foobar' => 'foo'
        ],
        [4] => [
            'foo' => 'foo',
            'foobar' => 'bar'
        ],
        [5] => [
            'foo' => 'foo',
            'foobar' => 'bar'
        ],
        [6] => [
            'foo' => 'foo',
            'foobar' => 'bar'
        ]
    ]
]

但没有任何改变。

我也尝试使用:

array_unique($data, SORT_REGULAR);

但这也不起作用。我也曾尝试foreach'ing我的$ data数组并像这样添加到新数组中:

$data = array_map(
    'unserialize',
    array_unique(array_map('serialize', $data))
);

但是每个键只返回一个子数组。我在做什么错了?

1 个答案:

答案 0 :(得分:2)

您可以在array_map内使用array_unique($data, SORT_REGULAR);

$result = array_map(function($x) {
    return array_unique($x, SORT_REGULAR);
}, $data);

print_r($result);

Demo