我需要一个函数在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