PHP 二維陣列的合併與去重
阿新 • • 發佈:2019-02-13
思路:建一個新陣列,把陣列的值設定為鍵,儲存到新陣列,然後判斷後面的是否有相同的值,有去掉(unsettle()),沒有則存入新陣列。因為儲存的新陣列是以九陣列值為鍵的新陣列,所以最後重置一下新陣列的鍵(key)。
{ //檢視有沒有重複項 if(isset($res[$value['name']]))
{ //有:銷燬 unset($value['name']); } else
{ $res[$value['name']] = $value; } } $people=array(); foreach($res as $key=>$value){ $people[]=$value; } return $people;}
/*
* 合併兩個陣列,並去重
*
* @param array $arr 陣列
*
* @param array $arr1 陣列
*
* @param array $arr2 陣列
*
* @return array $people 陣列 * */function people($arr1,$arr2){ $sql=array_merge($arr1, $arr2); $res = array(); foreach ($sql as $value){ //檢視有沒有重複項 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]; //實現二維陣列唯一性 } }