2015-06-15 29 views
2

好,我知道數組的數組與diferent鍵:腓multidimenson數組排序(不同的密鑰)

$update = Array(
     "123456" => Array ("Miguel, Gorila",12,4), 
     "3300221713" => Array ("Miguel, Macaco",6,2), 
     String => Array (String, INTa, INTb) 
     ); 

我想通過INTA進行排序,然後通過INTB。我知道我需要有一個比較功能,但是我不知道如何在所有按鍵不同時獲得該值。

function cmp(array $a, array $b) { 
    return $a[][1] - $b[][1]; 
} 
usort($update, cmp); 

應該是這樣的東西排序的INTa,我怎麼能使它按兩個排序?

+0

另外,如果你想保留的頂層數組中的鑰匙,你會想用'uasort'要不然頂層數組將被重新索引。 「** U ** ser定義,** A **聯合數組** **排序**」。 –

回答

1

對於多鍵排序,你需要有一個化合物相比:

function cmp($a, $b) { 
    $x = $a[1] - $b[1]; 
    if ($x) return $x; 
    return $a[2] - $b[2]; 
} 
+0

謝謝,正是這個。 –