2013-02-06 103 views
1

我的第一個數組:PHP排序數組,匹配關鍵

normalArray 
(
    [0] => Business Class 
    [2] => Economy 
    [6] => First Class 
) 

我的排序數組:

sortArray 
(
    [0] => Economy 
    [1] => Business Class 
    [2] => First Class 
) 

我試圖讓這個作爲我的結果

resultsArray 
(
    [2] => Economy 
    [0] => Business Class 
    [6] => First Class 
) 

注關鍵和價值需要遵循正確的順序。所以我需要按數組排序數組,同時保持鍵值。

我搜索了很多不同的例子。

感謝

+0

http://stackoverflow.com/questions/348410/sort-an-array-based-on-another-array – 2013-02-06 07:00:49

+1

@tony什麼ü用於排序數組? –

回答

0

試試這個:

$map = array_flip($sortArray); 
uasort($normalArray,function($a,$b) use ($map) {return $map[$a] < $map[$b] ? -1 : 1}); 
+0

謝謝!它的工作原理 – tony

0

我相信你正在尋找的是asort

+0

Asort不提供與我查找相同的結果,結果順序將需要與我的其他數組相同。 – tony

1

嘗試此asort()arsort()

實施例:

<?php 
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); 
asort($fruits); 
--OR-- 
arsort($fruits); 
foreach ($fruits as $key => $val) { 
    echo "$key = $val\n"; 
} 
?> 

上例將輸出:

a = orange 
d = lemon 
b = banana 
c = apple 

更多排序功能屬性檢查出這個link

這可以幫助你。

0

嘗試此arsort()

實施例:

normalArray 
(
    [0] => Economy 
    [2] => Business Class 
    [6] => First Class 
) 

上例將輸出:

resultsArray 
(
    [2] => Business Class 
    [0] => Economy 
    [6] => First Class 
) 
+0

做一個分類或分類不提供我要求的結果。訂單將需要與我的排序數組相同。不只是按字母順序檢查。感謝 resultsArray ( [2] =>經濟 [0] =>商務艙 [6] =>頭等艙 ) – tony