아래 예제에서는 http://php.net/manual/en/function.usort.php에서 콜백 함수가 호출됩니다.이 콜백 예제 (php manual)는 어떻게 작동합니까?
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$x = array(3, 2, 5, 6, 1);
usort($x, "cmp");
foreach ($x as $key => $value) {
echo "$key: $value<br>";
}
저는 특별히 usort에 관심이 없지만 예제에 있습니다. 내 질문은, cmp 함수에 $ a 및 $ b 인수는 무엇입니까? usort는 배열 인 $ x가 주어 지므로 cmp에서 무슨 일이 일어나는지 이해하지 못합니다 (코드는 간단하지만 인수가 무엇인지는 알지 못합니다).
내 상상력은 $ a와 $ b가 배열을 어떤 방식으로도 반복한다는 것을 알려줍니다 (정렬 할 수있는 유일한 방법). 누군가가 이것에 대해 밝힐 수 있습니까?
감사합니다. drew010. 지금은 이해하고 있습니다. 그러나 궁금한 점은 메뉴얼에있는 함수의 정의가 나에게 분명하지 않다는 것입니다. '비교 함수는 반드시 작거나 같거나 작은 정수를 반환해야합니다. 또는 첫 x 째 인수가 각각 두 x 째 인수보다 작거나 같거나 큰 인수로 간주되면 0보다 큰 값. ' – TenLeftFingers
비교 함수는 PHP 함수 [strcmp()] (http://php.net/strcmp)와 동일한 반환 값을 사용합니다.이 함수는 C에서 빌려온 함수이기 때문에이 함수의 작동 방식을 잘 알고있었습니다. 거기에는 분명하지 않지만, strcmp를 살펴보면 좀 더 명확해질 것입니다. – drew010