2014-04-26 46 views
0

我有一個php會話$ _SESSION ['details'],當我print_r返回以下內容。排序php數組嵌套元素排序

Array (
[0] => Array ([nameID] => 1357325402 [vol] => 1 [catID] => 2) 
[1] => Array ([nameID] => 1357325423 [vol] => 1 [catID] => 2) 
[2] => Array ([nameID] => 1357325470 [vol] => 1 [catID] => 10) 
[3] => Array ([nameID] => 1357325440 [vol] => 1 [catID] => 4) 
[4] => Array ([nameID] => 1357325416 [vol] => 1 [catID] => 2) 
[5] => Array ([nameID] => 1357325471 [vol] => 1 [catID] => 10) 
) 

如何對數組進行排序,以便所有的catID在一起?

Array (
[0] => Array ([nameID] => 1357325402 [vol] => 1 [catID] => 2) 
[1] => Array ([nameID] => 1357325423 [vol] => 1 [catID] => 2) 
[2] => Array ([nameID] => 1357325416 [vol] => 1 [catID] => 2) 
[3] => Array ([nameID] => 1357325440 [vol] => 1 [catID] => 4) 
[4] => Array ([nameID] => 1357325470 [vol] => 1 [catID] => 10) 
[5] => Array ([nameID] => 1357325471 [vol] => 1 [catID] => 10) 

) 

回答

1

試試這個:

function cmp($a, $b){ 
    return strcmp($a["catID"], $b["catID"]); 
} 

usort($_SESSION['details'], "cmp"); 
+0

+1我在這裏瞭解了關於strcmp的內容:) –

0

您可以使用PHP的usort功能,並提供自己的比較函數。像這樣:

function cmp($a, $b) 
{ 
    return ($a["catID"] > $b["catID"]) ? 1 : -1; // Ascending order 
} 

usort($_SESSION[‘details’], "cmp");