/**
* 合并时用的,二维数组,根据某个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,调的时候 就不要赋给 变量
}
效果截图:
/*
* 二维数组按指定键值排须
*/
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;
}
效果截图:
/**
* 根据第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;
// }
}
}
}
效果图:
/**
* 数据每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;
}
效果图