2017-02-10 113 views
0

我有这个数组index[0]是得分,我正确地排序它。我卡在index[3]这是一些重要的数据。因为我希望它从index[0]从高到低,相应的排序index[3]从低到高。正如你可以看到 array (0)显示第一,但它包含的得分为20和index[3]的404代替array (1)有一个较低的index[3]。请帮助谢谢。php数组/多维排序

[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 
    ) 

+0

你能帮我一个可爱的”代码co'z这里我真的很坚持。我在得分上正确排序,但是当我包括索引[3]时,它让我卡住了。使用两个索引对数组进行排序使得流失。谢谢。 – top

+0

你的问题不清楚,请调试代码并附上错误信息(如果有的话)。 – Jadeye

+0

没有错误。我需要的只是通过分数和索引来排序[3]。谢谢。 – top

回答

1

可以使用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 
+1

我有一个不错的结果。但我想成为索引最低的最高分[3]将在第一个数组上。谢谢你的帮助。 – top

+1

我知道了,先生。非常感谢。它真的帮助我。 – top

+0

很高兴知道你有结果。快乐的编码 – Thamaraiselvam