PHP一維數(shù)組的排序可以用sort(),asort(),arsort()等函數(shù),但是PHP二維數(shù)組的排序需要自定義.
PHP自定義代碼如下:
- function array_sort($arr,$keys,$type='asc'){ //2維數(shù)組排序
- $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;
- }
最近在做一個(gè)數(shù)據(jù)分析系統(tǒng),需要用到各種排序,下面是一段排序,代碼如下:
- //$re 為數(shù)據(jù)來源,二維數(shù)組
- $re = $this->array_sort($re,'LV','desc');//排序
- foreach($re as $key=>$val){
- foreach ($val as $key2=>$val2){
- if($key2=="uid"){
- $count[] = $val2;//獲取創(chuàng)建角色總數(shù)
- $lv[$val2][]=$re[$key]['LV'];//獲取所有角色等級(jí)
- }
- }
- }
- $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){//等級(jí)排查找出最大值后寫入統(tǒng)計(jì)
- 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();
- }
- }
- }
新聞熱點(diǎn)
疑難解答