🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[toc] ## :-: **二维数组,根据key去重** ```php /** * 合并时用的,二维数组,根据某个Key进行去重 * @param $arr 要去重的二维数组 * @param $key 根据哪个key去重 * @author yzm */ function assoc_unique(&$arr, $key){ $rAr=array(); for($i=0;$i<count($arr);$i++){ if(!isset($rAr[$arr[$i][$key]])) { $rAr[$arr[$i][$key]]=$arr[$i]; } } return $arr=array_values($rAr); //不写return,调的时候 就不要赋给 变量 } ``` 调用示例: ![](https://box.kancloud.cn/450b02d3940f4666813ed4b27d1bd727_810x431.png) ## :-: **二维数组,按指定key排序** ```php /* * 二维数组按指定键值排须 */ function arr_sort($array, $key, $order = "asc"){//asc是升序 desc是降序 $arr_nums = $arr = array(); foreach ($array as $k => $v) { $arr_nums[$k] = $v[$key]; } if ($order == 'asc') { asort($arr_nums); } else { arsort($arr_nums); } foreach ($arr_nums as $k => $v) { $arr[$k] = $array[$k]; } return $arr; } ``` 调用示例: ![](https://box.kancloud.cn/42b611ec74a4ef2126d4d0e8c806243d_864x538.png) ## :-: **找上级key** ```php /** * 根据第3维数组的key对应的value,找他的上级key(就是第2维的key) * @param $datas 三维数组 * @param $key 要查找的key * @param $value 要查找的value */ function test($datas,$key,$value){ foreach ($datas as $k => $v){ foreach ($v as $kk => $vv){ if(isset($vv[$key]) == $value){ return $kk; } //第3维用内置函数不稳,因为如果$vv不是数组的话,会有警告 // if(array_search('lampol',$vv)){ // return $kk; // } } } } ``` 调用示例: ![](https://box.kancloud.cn/ee8e50f05fc89a4ef83809d5b432154f_1337x466.png) ## :-: **每2个数组,分成一个组** ```php /** * 数据每2条分1个组 * @param $data 传个二维数组 * @param $n 以几条记录做区分 * @param $value 以哪个value(字段名)做区分 */ public function arrGrounp($data,$n,$value){ $grounp = array(); $total = ceil(count($data)/$n); for($k=0;$k<$total;$k++){ for ($i=0;$i<$total;$i++){ if (!is_null($data[$i+($k*$n)][$value])) { $grounp[$k][$i] = $data[$i + ($k * $n)][$value]; } } } return $grounp; } ``` 调用示例: ![](https://box.kancloud.cn/d76828a1806c486a4e48296adf54c89e_1077x376.png)