前言:php一維數組去重很簡單,直接array_unique($arr)即可,但是二維數組是如何去重的?
下面我們就通過簡單的代碼示例來看看二維數組去重的方法:
代碼示例:
/* * 二維數組去重 * 注意:二維數組中的元素個數必須一致,且鍵值也得一致,否則無意義 * @param array $arr * @return array $arr_afterhtml' target='_blank'>public function array_unique_2DArr($arr=array()){ if(empty($arr) || !is_array($arr)){ return array(); /*******處理二維數組個數不一致問題 start 其他項目用可以去掉*******/ //判斷數組中二維數組是否包含uniqueId,存在的話需要處理其他的日志信息,全部加上uniqueId,且uniqueId值必須相同 $hasUniqueId = false; foreach($arr as $val){ if(array_key_exists( uniqueId , $val)){ $hasUniqueId = true; break; //如果$arr中的二維數組中uniqueId存在,則其他也增加 if($hasUniqueId){ foreach($arr as $_k= $_val){ if(!array_key_exists( uniqueId , $_val)){ //在$_val中增加unique,只是為了和其他的帶有uniqueId鍵值的數組元素個數保持一致 $_val_keys = array_keys($_val); $_val_vals = array_values($_val); array_unshift($_val_keys, uniqueId array_unshift($_val_vals, 0_0 $arr[$_k] = array_combine($_val_keys, $_val_vals); /********處理二維數組個數不一致問題 end********/ foreach($arr[0] as $k = $v){ $arr_inner_key[]= $k; //先把二維數組中的內層數組的鍵值記錄在在一維數組中 foreach ($arr as $k = $v){ $v =join( ^ ,$v); //降維 用implode()也行 ,注意,拆分時不能用逗號,用其他的不常用符號,逗號可能會由于數據本身含有逗號導致失敗 $temp[$k] =$v; //保留原來的鍵值 $temp =array_unique($temp); //去重:去掉重復的字符串 foreach ($temp as $k = $v){ $a = explode( ^ ,$v); //拆分后的重組 $arr_after[$k]= array_combine($arr_inner_key,$a); //將原來的鍵與值重新合并 return $arr_after; }
總結:以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多相關視頻教程推薦:php教程!
以上就是php二維數組如何去重?(代碼示例)的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答