<?php /** * PHP刪除二維數組中的重復元素 */ // 對二維數組進行去重復 function more_array_unique($arr) { //先把二維數組中的內層數組的鍵值記錄在在一維數組中 foreach ($arr[0] as $k => $v) { $arr_inner_key[] = $k; } foreach ($arr as $k => $v) { //降維 用implode()也行 $v = join(",", $v); //保留原來的鍵值 $temp[]即為不保留原來鍵值 $temp[$k] = $v; } //去重:去掉重復的元素 $temp = array_unique($temp); foreach ($temp as $k => $v) { //拆分后的重組 如:Array( [0] => 張三 [1] => 18 ) $a = explode(",", $v); //將原來的鍵與值重新合並 $arr_after[$k] = array_combine($arr_inner_key, $a); } return $arr_after; } $arr = [ ['name' => '張三', 'age' => 18], ['name' => 'Tom', 'age' => 19], ['name' => 'Tom', 'age' => 19], ['name' => '張三', 'age' => 50], ['name' => '王小二', 'age' => 30], ]; echo "<pre>"; print_r(more_array_unique($arr));
注:
join函數是該函數的別名:implode()。
array_combine函數:表示創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值
array_unique 函數:移除數組中重復的值。
