1. 程式人生 > >php多維陣列去重

php多維陣列去重

說說資料例如我的資料格式:

Array
(
    [0] => Array
        (
            [0] => 武漢鴻飛汽車銷售
        )


    [1] => Array
        (
            [0] => 湖北恩施瑞康4S店
        )


    [2] => Array
        (
            [0] => 駐馬店潤佳4S店
        )


    [3] => Array
        (
            [0] => 武漢鴻飛
        )


    [4] => Array
        (
            [0] =>  梧州野馬汽貿店
        )


    [5] => Array
        (
            [0] => 煙臺德潤4S店
        )


    [6] => Array
        (
            [0] =>  武漢興海4S店
        )


    [7] => Array
        (
            [0] => 武漢飛達汽車銷售
        )


    [8] => Array
        (
            [0] => 武漢飛達汽車銷售
        )


)


就上面的陣列可以看出"武漢飛達汽車銷售”有兩個怎麼去掉重複的

很多人立馬想到array_unique去重但是這個是隻能處理一位陣列,可能想到array_column轉成一維陣列

騷年太天真,根據這上面把陣列寫成這樣我無力吐槽,竟然這樣就要解決,有沒有key值array_column不可能行的通,

可能還有一些人直接說萬能的foreach呀。這個算是一個辦法

下面肯定有人想到了array_filter但是發現怎麼都實現不了,其實是對的,這時候陣列關鍵在於key,所以要用到array_filter第三個引數,

具體實現如下:

$a=array_filter($array, function($k) use ($array) {
    //第一次進來給k==0 為true通過,第二次進來k就為1了,這時候就可以去比較了
    return $k==0 || $array[$k][0] != $array[$k-1][0];
}, ARRAY_FILTER_USE_KEY);
print_r($a);

是不是很簡單。

下面別人給出另外一種方法

array_unique($array, SORT_REGULAR);