這篇文章主要介紹了php去除二維數(shù)組的重復(fù)項方法,感興趣的小伙伴們可以參考一下
php中去一維數(shù)組的重復(fù)項可以通過php內(nèi)置函數(shù)array_unique(),但是php的array_unique函數(shù)對多維數(shù)組并不適用,怎么才能去除二維數(shù)組中的重復(fù)項呢?
以下給大家提供一個函數(shù)。
- //二維數(shù)組去掉重復(fù)值
- function unique_arr($array2D,$stkeep=false,$ndformat=true){
- $joinstr='+++++';
- // 判斷是否保留一級數(shù)組鍵 (一級數(shù)組鍵可以為非數(shù)字)
- if($stkeep) $stArr = array_keys($array2D);
- // 判斷是否保留二級數(shù)組鍵 (所有二級數(shù)組鍵必須相同)
- if($ndformat) $ndArr = array_keys(end($array2D));
- //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號連接的字符串
- foreach ($array2D as $v){
- $v = join($joinstr,$v);
- $temp[] = $v;
- }
- //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組
- $temp = array_unique($temp);
- //再將拆開的數(shù)組重新組裝
- foreach ($temp as $k => $v){
- if($stkeep) $k = $stArr[$k];
- if($ndformat){
- $tempArr = explode($joinstr,$v);
- foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
- }
- else $output[$k] = explode($joinstr,$v);
- }
- return $output;
- }
希望對大家學(xué)習(xí)php程序設(shè)計有所幫助。
新聞熱點
疑難解答