自訂:
| 代碼如下 |
複製代碼 |
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(); } } } |