**PHP二維數組根據某個key去重**
**示例1**
~~~
public static function array_unset_tt($arr, $key)
{
//建立一個目标數組
$res = array();
foreach ($arr as $value) {
//檢視有沒有重複項
if (isset($res[$value[$key]])) {
//有:銷毀
unset($value[$key]);
} else {
$res[$value[$key]] = $value;
}
}
return $res;
}
$array = array(
array('title'=>'yuanlai','date'=>'111'),
array('title'=>'xianzai','date'=>'222'),
array('title'=>'yuanlai','date'=>'333')
);
$newArr = array_unset_tt($array,'title');
}
~~~
**運作結果**
~~~
array(2) {
["yuanlai"]=>
array(2) {
["title"]=>
string(7) "yuanlai"
["date"]=>
string(3) "111"
}
["xianzai"]=>
array(2) {
["title"]=>
string(7) "xianzai"
["date"]=>
string(3) "222"
}
}
~~~
**示例2:**
~~~
function second_array_unique_bykey($arr, $key){
$tmp_arr = array();
foreach($arr as $k => $v){
if(in_array($v[$key], $tmp_arr)) //搜尋$v[$key]是否在$tmp_arr數組中存在,若存在傳回true
{
unset($arr[$k]); //銷毀一個變量 如果$tmp_arr中已存在相同的值就删除該值
}
else {
$tmp_arr[$k] = $v[$key]; //将不同的值放在該數組中儲存
}
}
//ksort($arr); //ksort函數對數組進行排序(保留原鍵值key) sort為不保留key值
return $arr;
}
$arr = array(
'0'=>array(
'name'=>'james',
'age'=>30,
),
'1'=>array(
'name'=>'susu',
'age'=>26,
),
'2'=>array(
'name'=>'james',
'age'=>30,
),
'new'=>array(
'name'=>'kube',
'age'=>37,
),
'list'=>array(
'name'=>'kube',
'age'=>27,
),
);
$key ='name';
$arr_key = second_array_unique_bykey($arr,$key);
print_r($arr_key);
echo "
";
~~~
**運作結果**
~~~
Array
(
[0] => Array
(
[name] => james
[age] => 30
)
[1] => Array
(
[name] => susu
[age] => 26
)
[new] => Array
(
[name] => kube
[age] => 37
)
)
~~~