当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-14 10:38:42 浏览: 评论:0 

PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义.

PHP自定义代码如下:

  1. function array_sort($arr,$keys,$type='asc'){ //2维数组排序 
  2.  $keysvalue = $new_array = array(); 
  3.  foreach ($arr as $k=>$v){ 
  4.   $keysvalue[$k] = $v[$keys]; 
  5.  } 
  6.  if($type == 'asc'){ 
  7.   asort($keysvalue); 
  8.  }else
  9.   arsort($keysvalue); 
  10.  } 
  11.  reset($keysvalue); 
  12.  foreach ($keysvalue as $k=>$v){ 
  13.   $new_array[$k] = $arr[$k]; 
  14.  } 
  15.  return $new_array;  

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

  1. //$re 为数据来源,二维数组 
  2.  
  3. $re = $this->array_sort($re,'LV','desc');//排序 
  4.  foreach($re as $key=>$val){ 
  5.   foreach ($val as $key2=>$val2){ 
  6.    if($key2=="uid"){ 
  7.    $count[] = $val2;//获取创建角色总数 
  8.    $lv[$val2][]=$re[$key]['LV'];//获取所有角色等级  
  9.    } 
  10.      
  11.   } 
  12.  } 
  13.  $count = array_count_values($count);  
  14.  foreach($count as $key=>$val){ 
  15.   M()->query("update mj_ad_count set create_juese = create_juese+".$val." where suid =".$key); 
  16.   echo M()->getLastSql();   
  17.  } 
  18.  foreach($lv as $key =>$val){//等级排查找出最大值后写入统计 
  19.   foreach ($val as $key2=> $val2){ 
  20.    if($key2==0){ 
  21.     //$ls[$key][] = $val2; 
  22.     M()->query("update mj_ad_count set juese_leave = ".$val2." where suid =".$key); 
  23.     echo M()->getLastSql();   
  24.    }    
  25.   } 
  26.  } 

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

分享到: