php获取唯一的子数组

时间:2013-09-28 16:10:33

标签: php arrays

我希望在PHP中获得一个解决方案,以获得基于子数组库的唯一数组。喜欢这个

Array
(
[0] => Array
    (
        [0] => 1227
        [1] => 146
        [2] => 1
        [3] => 39
    )

[1] => Array
    (
        [0] => 1227
        [1] => 146
        [2] => 1
        [3] => 39
    )

[2] => Array
    (
        [0] => 1228
        [1] => 146
        [2] => 1
        [3] => 39
    )
)

Array
(
[0] => Array
    (
        [0] => 1227
        [1] => 146
        [2] => 1
        [3] => 39
    )

[1] => Array
    (
        [0] => 1228
        [1] => 146
        [2] => 1
        [3] => 39
    )

)

我的意思是说array[1]应该被移除array[0]array[1]是相同的。我尝试使用array_unique,但它对我不起作用。

1 个答案:

答案 0 :(得分:14)

这可以使用array_unique完成,但您还需要使用SORT_REGULAR(PHP 5.2.9+)标记:

$array = array(
    array(1227, 146, 1, 39),
    array(1227, 146, 1, 39),
    array(1228, 146, 1, 39),
);
$array = array_unique($array, SORT_REGULAR);

输出:

Array
(
    [0] => Array
        (
            [0] => 1227
            [1] => 146
            [2] => 1
            [3] => 39
        )

    [2] => Array
        (
            [0] => 1228
            [1] => 146
            [2] => 1
            [3] => 39
        )

)

Demo!

对于旧版本的PHP,您可以在问题评论中使用我链接到的solution

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

希望这有帮助!