Php 从多维阵列中删除重复子阵列

Php 从多维阵列中删除重复子阵列,php,arrays,Php,Arrays,我知道你可能会认为这是一个骗人的问题,可能是这样,但我发现似乎没有任何东西可以对我的数组进行排序。我已经构建了我的阵列,输出如下所示: Array => [ [1] => [ [1] => [ 'foo' => 'bar', 'foobar' => 'foo' ], [2] => [ 'foo' => 'bar',

我知道你可能会认为这是一个骗人的问题,可能是这样,但我发现似乎没有任何东西可以对我的数组进行排序。我已经构建了我的阵列,输出如下所示:

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);
但一切都没有改变

我还尝试使用:

$data = array_map(
    'unserialize',
    array_unique(array_map('serialize', $data))
);
但这也没用。我还尝试过设置$data数组,并向新数组中添加一个,如下所示:

$newData = [];

foreach ($data as $key => $item)
{
    $newData[$key] = array_map(
        'unserialize', array_unique(array_map('serialize', $item))
    );
}

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

您可以使用
array\u unique($data,SORT\u REGULAR)内部:


您可以使用
array\u unique($data,SORT\u REGULAR)内部:


如果你知道它是重复的,为什么不用谷歌搜索它?这是谷歌排名第一的结果。例如@Andreas,因为正如我在我的问题中所说的,这个解决方案没有像链接的答案所期望的那样有效,因为“叶”元素是数组,而不是散列。。。因此代码需要一些最小的更改:)然后您没有进行足够的尝试!如果你用谷歌搜索它,你会找到我发布的23个答案的链接。他们都没工作吗?!真正地如果你知道它是复制品,为什么不谷歌一下呢?这是谷歌排名第一的结果。例如@Andreas,因为正如我在我的问题中所说的,这个解决方案没有像链接的答案所期望的那样有效,因为“叶”元素是数组,而不是散列。。。因此代码需要一些最小的更改:)然后您没有进行足够的尝试!如果你用谷歌搜索它,你会找到我发布的23个答案的链接。他们都没工作吗?!真正地
$result = array_map(function($x) {
    return array_unique($x, SORT_REGULAR);
}, $data);

print_r($result);