如何在 PHP 中从多维数组中删除重复值

2022-08-30 05:59:04

如何在PHP中从多维数组中删除重复的值?

示例数组:

Array
(
    [0] => Array
    (
        [0] => abc
        [1] => def
    )

    [1] => Array
    (
        [0] => ghi
        [1] => jkl
    )

    [2] => Array
    (
        [0] => mno
        [1] => pql
    )

    [3] => Array
    (
        [0] => abc
        [1] => def
    )

    [4] => Array
    (
        [0] => ghi
        [1] => jkl
    )

    [5] => Array
    (
        [0] => mno
        [1] => pql
    )

)

答案 1

这是另一种方法。不保存任何中间变量。

我们用它来消除来自各种重叠查询的重复结果。

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));

答案 2

从 5.2.9 开始,如果您像这样使用标志,则可以使用 array_unique():SORT_REGULAR

array_unique($array, SORT_REGULAR);

这使得该函数可以像使用一样比较元素的相等性,这非常适合您的情况。$a == $b

输出

Array
(
    [0] => Array
        (
            [0] => abc
            [1] => def
        )

    [1] => Array
        (
            [0] => ghi
            [1] => jkl
        )

    [2] => Array
        (
            [0] => mno
            [1] => pql
        )

)

但请记住,文档指出:

array_unique()不适用于多维数组。