2014-12-21 12 views
-1

例陣列訂購數組:PHP:由2個值

$ratings[] = array("8.25", "7", "john"); 
$ratings[] = array("8", "7", "kent"); 
$ratings[] = array("9", "7", "broman"); 
$ratings[] = array("9", "9", "yodude"); 
$ratings[] = array("10", "4", "anotherman"); 

我需要通過第一值降序排序此數組,則第二個值降序如果所述第一值相等。

有序陣列應該是這樣的:

$ratings[] = array("10", "4", "anotherman"); 
$ratings[] = array("9", "9", "yodude"); 
$ratings[] = array("9", "7", "broman"); 
$ratings[] = array("8.25", "7", "john"); 
$ratings[] = array("8", "7", "kent"); 

你怎麼會去這樣做呢?我猜測有一個更好的方法來做到這一點,而不是循環兩次。

+1

請投資5分鐘待辦事項這個自己!使用谷歌嘗試一些事情,你會得到它! – Rizier123

+0

http://php.net/manual/en/function.uasort.php – Chris

+0

Rizier,有多種方式,我問,因爲我想知道最好的方法。 –

回答

0

好吧,uasort是要走的路。 這是我如何解決它:

uasort($ratings, function ($a, $b) { 
    if ($a[0] == $b[0]) { 
     if ($a[1] == $b[1]) { 
      return 0; 
     } 
     return $a[1] > $b[1] ? -1 : 1; 
    } 
    return ($a > $b) ? -1 : 1; 
}); 

有些人認爲它能夠更好利用array_multisort()