2011-02-22 91 views
2

我需要根據數組中的值的順序對數組進行排序。 簡單的例子:按另一個數組的鍵排序數組

$sort_array = array('key1', 'key2'); 

$array_that_needs_sorting = array('key2' => 'value2', 'key1' => 'value1'); 

排序後,數組應該是:

array('key1' => 'value1', 'key2' => 'value2'); 

回答

1

你可以看看Sort an Array by keys based on another Array?。它應該給你一個關於如何做到這一點的想法。

+0

謝謝,我已經嘗試過該主題中的所有功能,但它沒有工作,因爲我的數組的大小不一致 – Jesse 2011-02-22 20:40:38

0
array_merge(array_combine($sort_array, array_fill(0, count($sort_array), null)) 
    , $array_that_needs_sorting); 
3

如果你知道$sort_array鍵都存在需要進行排序的數組中,你可以這樣做:

$sorted = array_merge(array_flip($keys), $unsorted); 

其中$keys$sort_array$unsorted$array_that_needs_sorting

+1

這是可惜的,這隻適用於字符串鍵! – 2014-01-28 18:04:59