二维数组去重
<?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));
![](https://img2018.cnblogs.com/blog/1488893/201810/1488893-20181011113904423-1891478550.png)
注:
join函数是该函数的别名:implode()。
array_combine函数:表示创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_unique 函数:移除数组中重复的值。