思路:建一个新数组,把数组的值设置为键,保存到新数组,然后判断后面的是否有相同的值,有去掉(unsettle()),没有则存入新数组。因为保存的新数组是以九数组值为键的新数组,所以最后重置一下新数组的键(key)。
/* * 合并两个数组,并去重 * * @param array $arr 数组 * * @param array $arr1 数组 *
* @return array $people 数组 * */function people($arr1,$arr2){ $sql=array_merge($arr1, $arr2); $res = array(); foreach ($sql as $value)* @param array $arr2 数组 *
{ //查看有没有重复项 if(isset($res[$value['name']]))
{ //有:销毁 unset($value['name']); } else
{ $res[$value['name']] = $value; } } $people=array(); foreach($res as $key=>$value){ $people[]=$value; } return $people;}$arr_out =array(); foreach($c as $k => $v){ $key_out = $v['name']."-".$v['phone']; //提取内部一维数组的key(name age)作为外部数组的键 p($key_out); p($arr_out); if(array_key_exists($key_out,$arr_out)){ continue; }else{ $arr_out[$key_out] = $c[$k]; //以key_out作为外部数组的键 $arr_wish[$k] = $c[$k]; //实现二维数组唯一性 } }