PHP에서 사용자 정의 비교 함수를 사용하면 배열을 정렬하고 키 이름을 보존할 수 있습니다. 이를 수행하려면 배열과 콜백 함수를 매개변수로 사용하는 usort() 함수를 사용할 수 있습니다. 콜백 함수는 두 개의 배열 요소를 받고 정렬 순서를 나타내는 정수(-1, 0 또는 1)를 반환합니다.
사용자 정의 비교 함수를 사용하여 배열을 정렬하는 것은 배열 작업에서 일반적인 작업입니다. PHP에서는 usort()
함수를 사용하여 쉽게 수행할 수 있습니다. usort()
函数轻松实现此目的。
usort(array, callable)
以下示例展示了如何使用自定义比较函数对数组中的键名进行排序,同时保留键名:
<?php // 待排序的数组 $arr = [ 'a' => 10, 'c' => 5, 'b' => 20, ]; // 自定义比较函数 $compare = function ($a, $b) { return strcmp($a['key'], $b['key']); }; usort($arr, $compare); // 输出排序后的数组 print_r($arr);
在这个例子中,compare
函数将两个键名($a['key']
和 $b['key']
)作为参数,并使用 strcmp()
函数对其进行比较。strcmp()
函数返回 -1、0 或 1,指示第一个字符串是否小于、等于或大于第二个字符串。
调用 usort()
函数时,它将指定的比较函数应用于 $arr
数组中的每个元素。如果 compare
Array ( [a] => 10 [b] => 20 [c] => 5 )
rrreee
이 예에서는비교
함수는 두 개의 키 이름($a['key']
및 $b['key']
)을 매개변수로 사용하고 strcmp()
함수는 이를 비교합니다. strcmp()
함수는 -1, 0 또는 1을 반환하여 첫 번째 문자열이 두 번째 문자열보다 작거나 같거나 큰지 여부를 나타냅니다. usort()
함수가 호출되면 지정된 비교 함수를 $arr
배열의 각 요소에 적용합니다. compare
함수가 -1을 반환하면 첫 번째 요소가 두 번째 요소보다 먼저 정렬됩니다. 1을 반환하면 그 반대가 됩니다. 0을 반환하면 요소의 순서는 변경되지 않습니다. 🎜🎜최종 출력은 다음과 같습니다. 🎜rrreee🎜배열은 키 이름을 유지하면서 키 이름에 따라 작은 것부터 큰 것까지 정렬됩니다. 🎜위 내용은 PHP에서 사용자 정의 비교 함수를 사용하여 배열을 정렬하고 키 이름을 보존하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!