php二维数组排序后获取最大值
PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义.
PHP自定义代码如下:
<?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;
}
?>最近在做一个数据分析系统,需要用到各种排序,下面是一段排序,代码如下:
<?php
//$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();
}
}
}
?>本文地址:http://www.phprm.com/shuzu/fs3766.html
转载随意,但请附上文章地址:-)