2013-07-21 75 views
-1

我正在尋找最好的(最快)的方式進行排序多維數組是這樣的:最佳的排序方式在PHP的鍵多維數組

array(
     2010 => array(
      1 => array(
       26 => 'some value', 
       29 => 'some value', 
       31 => 'some value' 
      ), 
      7 => array(
       13 => 'some value', 
       25 => 'some value', 
       4 => 'some value' 
      ) 
     ), 
     2011 => array(
      12 => array(
       5 => 'some value', 
       3 => 'some value', 
       19 => 'some value' 
      ), 
      2 => array(
       7 => 'some value', 
       30 => 'some value', 
       14 => 'some value' 
      ) 
     ) 
    ) 

正如你所看到的,我使用的是年,幾個月和幾天作爲鍵,我需要通過這個鍵排序數組。我會很感激任何幫助。

謝謝

+0

請張貼您當前的PHP代碼。 – elclanrs

回答

3

你可以試試這個。人們可以使用recrusive函數使其更一般,但我認爲這對你的情況已經足夠好了。

foreach ($years as &$months){ 
    foreach ($months as &$days){ 
    ksort($days); 
    } 
    ksort($months); 
} 
ksort($years); 
+0

謝謝,看起來這是我正在尋找的東西。使用遞歸函數是很好的,但是,正如我所看到的,它不會在性能方面帶來任何優勢。 –

2

你可以試試「array_walk_recursive」遞歸訪問多維數組的項目,以減少函數調用。舉例:

function custom_sort(&$val, $key) { 
    if (is_array($val)) { 
     ksort($val); 
    } 
} 

array_walk_recurisive($arrInput, 'custom_sort');