php多維陣列去重
阿新 • • 發佈:2019-02-08
說說資料例如我的資料格式:
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);