usort() 関数を使用して長い PHP 配列を処理する際に問題が発生しました。「1.1」、「2.3」、「1.1.2」、「3.1」、30、「3.10」のように、40 ~ 50 個の要素を持つ配列を並べ替えたい...いくつかの要素だけを進めれば、すべて正常に動作します。しかし、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");
...誰か助けてくれませんか? これを解決することは可能ですか?どんな助けでも大歓迎です。
前もって感謝します。