usort() 함수를 통해 더 긴 PHP 배열을 처리하는 데 문제가 있습니다. "1.1", "2.3", "1.1.2", "3.1", 30, "3.10"과 같은 40-50 요소로 배열을 정렬하려고합니다 ... 일부 요소 만 진행하면 모든 것이 작동합니다 벌금.PHP - usort 함수가 너무 느립니다.
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");
... 누군가가 수 :
내 코드는 ... 너무 느려, 그것도 90 초 타임 아웃을 무시하는 것이 - 나는 40 개 요소의 배열이있는 경우 그러나,이 함수는 단순히 너무 느립니다 도와주세요? 이 문제를 해결할 수 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.
미리 감사드립니다.
정확히 당신이 뭘'break'을 (귀하의 샘플은 하나 개의 통지를 제공합니다)? 코드에는 이미'return'ed가있을 것이고 휴식은 절대로 실행될 수 없습니다. –
'for' 루프는 무엇입니까? 나는 그것을 얻지 못한다 ... 당신의 정렬 알고리즘이 무엇을해야 하는지를 설명 할 수 있겠는가? 원하는 출력을 공유하십시오. – elclanrs
version_compare()를 사용하면 서브 어레이로의 분해가 더 효율적이되지 않겠습니까? –