我需要一個函數在PHP中根據任意順序對單詞列表進行排序。PHP按任意順序排序
列表中不是我預定義順序的任何單詞應按字母順序排列在列表的末尾。
以下是我的第一次嘗試,它既不優雅也不高效。你能建議一個更好的方法來實現這個嗎?
感謝
public static function sortWords(&$inputArray){
$order=array("Banana","Orange", "Apple", "Kiwi");
sort($inputArray);
for($i=0;$i<count($inputArray));$i++){
$ac = $inputArray[$i];
$position = array_search($ac,$order);
if($position !== false && $i != $position){
$temp=$inputArray[$position];
$inputArray[$position]=$inputArray[$i];
$inputArray[$i]=$temp;
}
}
}
您可以先對兩個列表進行排序(NlogN + MlogM時間),然後遍歷匹配列表(N + M時間)。既然你必須排序,這是最佳的。 – bdares 2011-04-12 08:40:04
我知道這對你的問題沒有關係,但是你在'for'語句中有一個錯誤,兩個右括號而不是'$ i
AJJ
2011-04-12 08:44:09