2014-04-14 189 views
0

我有一個多維數組這可能是這樣的:PHP - 排序多維數組的關鍵

$array[1][0] = "string"; 
$array[0][1] = "anotherstring"; 
$array[0][0] = "thirdstring"; 
$array[1][1] = "fourthstring"; 

我想排序這個數組由鍵,以便它看起來像這樣:

$array[0][0] = "thirdstring"; 
$array[0][1] = "anotherstring"; 
$array[1][0] = "string"; 
$array[1][1] = "fourthstring"; 

在我正在使用以下程序的那一刻:

ksort($array); 
foreach ($array as $key => $value) { 
     ksort($value); 
     $array[$key] = $value; 
} 

這確實有效,但也許有更好的(內置)函數來做到這一點?

+0

參見[多維陣列上ksort(http://stackoverflow.com/questions/9017418/ksort-多維數組),但我認爲你的5行代碼就足夠了。 – user1477388

+0

array_multisort()是用於多維排序的內置函數。在你的代碼中,我不需要'$ array [$ key] = $ value;' – Devon

+0

@Devon需要'$ array [$ key] = $ value;' 'foreach($ array作爲&$值)ksort($ value);'不需要 – pesatu

回答

1

可以縮短你的循環使用:

ksort($array); 
foreach($array as &$value) { 
     ksort($value); 
} 

或者使用array_walk

ksort($array); 
array_walk($array, 'ksort');