2012-07-25 26 views
0

我有一個數組,看起來是這樣的:如何通過存儲在子數組中的值來排序數組?

array(
    (int) 0 => array(
    'SomeItem' => array(
     'id' => '1', 
     'number' => '3', 
     'created' => '2012-07-20 23:34:00', 
     'modified' => '2012-07-20 23:34:00' 
    ) 
) 
    (int) 1 => array(
    'SomeItem' => array(
     'id' => '1', 
     'number' => '6', 
     'created' => '2012-07-20 23:34:00', 
     'modified' => '2012-07-20 23:34:00' 
    ) 
) 
) 

我怎麼會用「數字」進行排序,所以我可以把它在數量上升的順序,同時仍然保持結構?

謝謝!

+1

'usort'是這種情況下http://php.net/manual/en/function.usort.php功能上也有很多同樣的問題在前面提到過。 – mask8 2012-07-25 02:17:27

+0

http://unfra.me/2012/07/php-usort/ – 2012-07-25 02:18:00

+0

旁邊有一個multisort。但是psst。你需要了解兩者(我不會告訴你兩個函數都有記錄) – hakre 2012-07-25 02:37:33

回答

1

使用封閉:

usort($array, function($a, $b) 
     { 
      if ($a['SomeItem']['number'] == $b['SomeItem']['number']) 
       return 0; 

      return ($a['SomeItem']['number'] < $b['SomeItem']['number']) ? -1 : 1; 
     } 
    ); 

沒有

function cmp($a, $b) 
{ 
    if ($a['SomeItem']['number'] == $b['SomeItem']['number']) 
     return 0; 

    return ($a['SomeItem']['number'] < $b['SomeItem']['number']) ? -1 : 1; 
} 
usort($array, 'cmp'); 
+0

謝謝你,我感謝你給我提供了一個堅實的例子的額外工作,這有助於! – xtraorange 2012-07-25 03:56:02

相關問題