php获取唯一的子数组

Ami*_*rma 5 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
    )
)
Run Code Online (Sandbox Code Playgroud)

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

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

)
Run Code Online (Sandbox Code Playgroud)

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

Ama*_*ali 15

这可以用,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);
Run Code Online (Sandbox Code Playgroud)

输出:

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

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

)
Run Code Online (Sandbox Code Playgroud)

演示!

对于旧版本的PHP,您可以使用我在问题评论中链接到的解决方案:

$array = array_map("unserialize", array_unique(array_map("serialize", $array)));
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!