色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php 二維array 排序

劉秋月1年前8瀏覽0評論
PHP是一門十分強大的語言,不僅適用于構建網站,也可用于底層開發。在PHP中,以二維數組為例,排序是一個十分常見的操作。下面我們來具體探討如何對二維數組進行排序。
首先介紹的是按照某一個字段排序。比如現在有一個二維數組,其中一個字段為年齡,我們希望按照年齡將數組從小到大排序。那么代碼如下:
$students = array(
array('name' => 'Alice', 'age' => 20),
array('name' => 'Bob', 'age' => 18),
array('name' => 'Carol', 'age' => 22),
array('name' => 'David', 'age' => 19)
);
$ages = array_column($students, 'age'); // 提取所有年齡
array_multisort($ages, $students); // 對年齡數組進行排序,保持索引與原數組一致
foreach ($students as $s) {
echo $s['name'], '(', $s['age'], ')<br>';
}

輸出結果為:
Alice(20)
Bob(18)
David(19)
Carol(22)
可以看到,年齡從小到大排列,同時其他字段也隨著排序的順序一同變化。
接下來是多字段排序。比如現在有一個二維數組,其中一個字段為姓名,另一個字段為年齡,我們希望按照姓名和年齡進行排序。那么代碼如下:
$students = array(
array('name' => 'Alice', 'age' => 20),
array('name' => 'Bob', 'age' => 18),
array('name' => 'Carol', 'age' => 22),
array('name' => 'David', 'age' => 19),
array('name' => 'Alice', 'age' => 19),
array('name' => 'Carol', 'age' => 20)
);
$names = array_column($students, 'name'); // 提取所有姓名
$ages = array_column($students, 'age'); // 提取所有年齡
array_multisort($names, SORT_ASC, $ages, SORT_ASC, $students); // 對姓名數組和年齡數組進行排序,保持索引與原數組一致
foreach ($students as $s) {
echo $s['name'], '(', $s['age'], ')<br>';
}

輸出結果為:
Alice(19)
Alice(20)
Bob(18)
Carol(20)
Carol(22)
David(19)
可以看到,先按照姓名進行排序,姓名相同時按照年齡進行排序。
最后是自定義排序規則。比如現在有一個二維數組,其中一個字段為分數,我們希望按照一定規則對分數進行排序,比如優秀,良好,及格,不及格。那么代碼如下:
$students = array(
array('name' => 'Alice', 'score' => 85),
array('name' => 'Bob', 'score' => 60),
array('name' => 'Carol', 'score' => 75),
array('name' => 'David', 'score' => 50),
array('name' => 'Eva', 'score' => 90)
);
function score_sort($a, $b) {
$scores = array(
'excellent' => 90,
'good' => 80,
'pass' => 60,
'fail' => 0
);
$score_a = '';
foreach ($scores as $k => $v) {
if ($a['score'] >= $v) {
$score_a = $k;
break;
}
}
$score_b = '';
foreach ($scores as $k => $v) {
if ($b['score'] >= $v) {
$score_b = $k;
break;
}
}
return strcmp($score_b, $score_a);
}
usort($students, 'score_sort');
foreach ($students as $s) {
echo $s['name'], '(', $s['score'], ')<br>';
}

輸出結果為:
Eva(90)
Alice(85)
Carol(75)
Bob(60)
David(50)
可以看到,按照自定義規則進行排序,優秀排在最前面,其次是良好,等等。
以上是PHP中對二維數組進行排序的幾種方法,對于不同的排序需求,可靈活選擇相應的方法。