PHP中提供了array_unique函數去除一維數組中的重複項,可是咱們實際的項目開發中,從數據庫select查詢出來的數組常常是二維的;程序員
這裏面可能有重複項,這就須要咱們本身定義函數進行去除重複項。數據庫
思路:數組
一、首先獲取第二維數組的鍵名,保存在一個數組裏面(假設命名爲keyname_Arr);函數
二、而後使用一個符號作分隔符(好比‘-’),將二維數組裏面的鍵值拼接成一個字符串,生成一個臨時數組;網站
三、而後使用【array_unique()函數】比較生成的這個臨時數組,去掉裏面的相同字符串;spa
四、而後將去除重複後的數組從新組裝成二維數組:code
在foreach()裏面循環使用【explode()函數】,按‘-’分隔符拆分字符串;ci
同時在foreach()裏面對拆分出來的字符串所造成的【新的臨時數組tempnew】,再使用一個foreach( $tempnew as $tempk =>$tempv),開發
循環賦值 $output[ $k ][ $keyname_Arr[ $tempk ] ] = tempv ;字符串
六、最後,$output便是去除重複後的二維數組。
來點實際代碼理解一下:
$keyname_Arr= array_keys(end($resource_arr)); //存儲內層數組的鍵名 //使用'-'做爲分隔將數組拼接成字符串 foreach ($resource_arr as $v){ $v = join("-",$v); $temp[] = $v; } //去掉重複的字符串,也就是重複的一維數組 $temp = array_unique($temp); //再將拆開的數組從新組裝 foreach ($temp as $k => $v) { $tempnew = explode("-",$v);//拆分去重以後的字符串 foreach($tempnew as $tempkey => $tempval) $output[$k][$keyname_Arr[$tempkey]] = $tempval; }
Cion.記載於2016/05/03夜.