靈活運用數組函數—多維數組排序

薛老師在指導學員學員面試中發現有個數組相關的問題問的不少,頻率很高,其中有關於數組排序的的問題。
那麼咱們就舉個例子來看看:
數組
arr爲班級期末考試成績,具體以下,要求按照語文成績從高到低排名並輸出名次
[PHP]
純文本查看
複製代碼
?
1
2
3
4
5
6
7
8
$arr = array (
'0' => array ( 'name' => '朱宏宇' , 'Chinese' =>91, 'Math' => 99, 'English' =>92),
'1' => array ( 'name' => '李一凡' , 'Chinese' =>98, 'Math' => 99, 'English' =>92),
'2' => array ( 'name' => '丁飛' , 'Chinese' =>92, 'Math' => 99, 'English' =>92),
'3' => array ( 'name' => '何樂' , 'Chinese' =>93, 'Math' => 99, 'English' =>92),
'98' => array ( 'name' => '牛曉飛' , 'Chinese' =>94, 'Math' => 99, 'English' =>92),
'99' => array ( 'name' => '李聰' , 'Chinese' =>100, 'Math' => 99, 'English' =>92),
);


若是對於一個一位數組根據某個字段排序很
easy,那麼對於二維或者是多維數組怎麼處理呢???接下來咱們看看對多維數組的處理方式,以上題爲例,咱們要根據數據$arr的語文成績排序,那麼咱們首先要定義個空數據用來存放排序後的數組$tmp_array,而後定一個變量用來存放咱們須要做爲條件的字段$field,而後經過循環遍歷將數據放到空數組裏,在經過鍵倒序排序krsort()

[PHP]
純文本查看
複製代碼
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
<?php
$arr = array (
'0' => array ( 'name' => '朱宏宇' , 'Chinese' =>91, 'Math' => 99, 'English' =>92),
'1' => array ( 'name' => '李一凡' , 'Chinese' =>98, 'Math' => 99, 'English' =>92),
'2' => array ( 'name' => '丁飛' , 'Chinese' =>92, 'Math' => 99, 'English' =>92),
'3' => array ( 'name' => '何樂' , 'Chinese' =>93, 'Math' => 99, 'English' =>92),
...........
'98' => array ( 'name' => '牛曉飛' , 'Chinese' =>94, 'Math' => 99, 'English' =>92),
'99' => array ( 'name' => '李聰' , 'Chinese' =>100, 'Math' => 99, 'English' =>92),
);
$field = 'Chinese' ;
$tmp_array = array ();
foreach ( $arr as $val ){
$tmp_array [ $val [ $field ]] = $val ;
}
echo "<pre>" ;
krsort( $tmp_array );
print_r( $tmp_array );
?>
你們能夠看到結果是以下圖所示
相關文章
相關標籤/搜索