我在通过 usort() 函数处理较长的 PHP 数组时遇到问题。我想对一个包含 40-50 个元素的数组进行排序,例如“1.1”、“2.3”、“1.1.2”、“3.1”、30、“3.10”……如果我只处理几个元素,一切正常。但是,如果我有一个包含 40 个元素的数组,那么这个函数就太慢了——太慢了,它甚至会覆盖 90 秒的超时......
我的代码:
function mySort($a,$b) {
$a_arr = explode(".",$a);
$b_arr = explode(".",$b);
if ($a_arr[0] < $b_arr[0]) {return -1;break;}
if ($a_arr[0] > $b_arr[0]) {return 1;break;}
for($i=0;$a_arr[$i]==$b_arr[$i];$i++){
if ($a_arr[$i+1] < $b_arr[$i+1]) {return -1;break;}
if ($a_arr[$i+1] > $b_arr[$i+1]) {return 1;break;}
}
}
$sort_array = array("1.1","2.3","1.1.2","3.1","30","3.10"); //example, I take this data from the database
usort($sort_array,"mySort");
...有人可以帮忙吗?有可能解决这个问题吗?任何帮助将不胜感激。
提前致谢。