[英]php array / multidimensional sort
我有這個數組index[0]
是分數,我正確地對其進行了排序。 而且我被困在index[3]
,這是一些重要數據。 因為我希望它從高到低從index[0]
到對應的從低到高的index[3]
。 如您所見,首先顯示array (0)
但其中包含的分數為20, index[3]
為404,而array (1)
的index[3]
較低index[3]
。 請幫助謝謝。
[0] => Array
(
[0] => 20
[1] => Revelyn Nazar
[2] => PASSED
[3] => 404
)
[1] => Array
(
[0] => 20
[1] => Mark Valle
[2] => PASSED
[3] => 351
)
[2] => Array
(
[0] => 20
[1] => Marita Serrano
[2] => PASSED
[3] => 372
)
[3] => Array
(
[0] => 20
[1] => Ma Lourdes Pulumbarit
[2] => PASSED
[3] => 482
)
[4] => Array
(
[0] => 20
[1] => Diana Rose Reyes
[2] => PASSED
[3] => 584
)
[5] => Array
(
[0] => 20
[1] => Andrea Reyes
[2] => PASSED
[3] => 398
)
[6] => Array
(
[0] => 19
[1] => Willie Masiclat
[2] => PASSED
[3] => 455
)
[7] => Array
(
[0] => 19
[1] => Rhaymond Emata
[2] => PASSED
[3] => 540
)
[8] => Array
(
[0] => 19
[1] => Magnolia Grace Mallari
[2] => PASSED
[3] => 516
)
[9] => Array
(
[0] => 19
[1] => Ma. Milania Castro
[2] => PASSED
[3] => 429
)
[10] => Array
(
[0] => 19
[1] => Kris Gutierrez
[2] => PASSED
[3] => 459
)
[11] => Array
(
[0] => 19
[1] => Karren Ann Cruz
[2] => PASSED
[3] => 410
)
[12] => Array
(
[0] => 19
[1] => Iwee Boy Sarita
[2] => PASSED
[3] => 451
)
[13] => Array
(
[0] => 19
[1] => Gretchen Concepcion
[2] => PASSED
[3] => 517
)
[14] => Array
(
[0] => 19
[1] => Clarissa Aguinaldo
[2] => PASSED
[3] => 439
)
[15] => Array
(
[0] => 19
[1] => Camille Jolo
[2] => PASSED
[3] => 347
)
[16] => Array
(
[0] => 19
[1] => April Buenaventura
[2] => PASSED
[3] => 600
)
[17] => Array
(
[0] => 19
[1] => Alyssa Rose Angelo
[2] => PASSED
[3] => 375
)
[18] => Array
(
[0] => 18
[1] => Joel Valencia
[2] => PASSED
[3] => 415
)
[19] => Array
(
[0] => 18
[1] => Errylyn Coronel
[2] => PASSED
[3] => 437
)
[20] => Array
(
[0] => 18
[1] => Editha Joy Paras
[2] => PASSED
[3] => 339
)
[21] => Array
(
[0] => 18
[1] => Diona Culala
[2] => PASSED
[3] => 601
)
[22] => Array
(
[0] => 18
[1] => Abbygael Aguirre
[2] => PASSED
[3] => 479
)
)
您可以使用uasort
通過1個以上的鍵進行排序
uasort($your_arr, function($a,$b){
$c = $a[0] - $b[0];
$c .= $a[3] - $b[3];
return $c;
});
數組的結果
Array
(
[15] => Array
(
[0] => 19
[1] => Camille Jolo
[2] => PASSED
[3] => 347
)
[11] => Array
(
[0] => 19
[1] => Karren Ann Cruz
[2] => PASSED
[3] => 410
)
[9] => Array
(
[0] => 19
[1] => Ma. Milania Castro
[2] => PASSED
[3] => 429
)
[14] => Array
(
[0] => 19
[1] => Clarissa Aguinaldo
[2] => PASSED
[3] => 439
)
[12] => Array
(
[0] => 19
[1] => Iwee Boy Sarita
[2] => PASSED
[3] => 451
)
[6] => Array
(
[0] => 19
[1] => Willie Masiclat
[2] => PASSED
[3] => 455
)
[10] => Array
(
[0] => 19
[1] => Kris Gutierrez
[2] => PASSED
[3] => 459
使用usort:
function my_sort($a,$b)
{
if ($a[0]==$b[0]){ return $a[3] - $b[3] };
return $a[0]-$b[0];
}
$a=/*your array*/;
usort($a,"my_sort");
請參閱此處以獲取更多信息: http : //www.w3schools.com/php/func_array_usort.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.