php二维数组排序后获取最大值

原创
2016-06-08 17:23:37 2151浏览
PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义。

自定义:

代码如下 复制代码

function array_sort($arr,$keys,$type='asc'){ //2维数组排序
$keysvalue = $new_array = array();
foreach ($arr as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $arr[$k];
}
return $new_array;
}

最近在做一个数据分析系统,需要用到各种排序,下面是一段排序:

代码如下 复制代码

//$re 为数据来源,二维数组

$re = $this->array_sort($re,'LV','desc');//排序
foreach($re as $key=>$val){
foreach ($val as $key2=>$val2){
if($key2=="uid"){
$count[] = $val2;//获取创建角色总数
$lv[$val2][]=$re[$key]['LV'];//获取所有角色等级
}

}
}
$count = array_count_values($count);
foreach($count as $key=>$val){
M()->query("update mj_ad_count set create_juese = create_juese+".$val." where suid =".$key);
echo M()->getLastSql();
}
foreach($lv as $key =>$val){//等级排查找出最大值后写入统计
foreach ($val as $key2=> $val2){
if($key2==0){
//$ls[$key][] = $val2;
M()->query("update mj_ad_count set juese_leave = ".$val2." where suid =".$key);
echo M()->getLastSql();
}
}
}

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一条:php 正则替换掉网页中所有超链接 过滤网页中所有Url 下一条:PHP求天数常犯的错误详解

相关文章

查看更多