2011-12-08 63 views
0

我想弄清楚正確的函數在PHP中排序多維數組。我考慮做一個foreach然後使用kso​​rt(這不起作用)。我認爲注意第二個鍵(數字鍵)是「手動」設置(而不是使用array_push,因爲該場景中的第一個鍵將是0而不是1)可能會很有用。排序多維數組副鍵

這是一個單一的實例,所以我不需要爲這個或任何超類特殊的類,我對PHP中的正確上下文函數感興趣,以使這些代碼更加面向性能(以及以弄清楚我做錯了什麼)。

注意我想保留PRIMARY鍵(e,g,Main和Promotional)它們的當前順序。

在無序數組...

Array 
(
    [Main] => Array 
     (
      [3] => Main2 
      [2] => Content 
      [1] => Main1 
     ) 

    [Promotional] => Array 
     (
      [3] => Promotional1 
      [2] => Content 
      [1] => Promotional2 
     ) 

) 

期望得到的結果(通過二級鍵排序)...

Array 
(
    [Main] => Array 
     (
      [1] => Main1 
      [2] => Content 
      [3] => Main2 
     ) 

    [Promotional] => Array 
     (
      [1] => Promotional2 
      [2] => Content 
      [3] => Promotional1 
     ) 

) 
+0

爲什麼不在二級迭代中使用for循環? – Arend

回答

2

你也可以試試這個:

foreach($array as $key => &$data) { 
    ksort($data); 
} 

$ data變量之前的&符號指示$ data變量是一個指針,並且對該變量的任何更改都會級聯回原始配置。

+0

感謝您的澄清。 – John

3

你可以試試:

foreach($array as $key => $data) { 
    ksort($data); 
    $array[$key] = $data; 
} 
+0

時間限定在一分鐘後會接受,謝謝。 – John