uksort() 함수와 사용자 정의 비교 함수인 CompareKeyLengths를 사용하면 키 이름을 유지하면서 배열 키 이름의 길이에 따라 PHP 배열을 정렬할 수 있습니다. 비교 함수는 키 길이의 차이를 계산하고 uksort()가 배열을 정렬하는 기준에 따라 정수를 반환합니다. 또한 실제 사례에서는 필드 이름 길이를 기준으로 데이터베이스의 레코드를 정렬하는 방법을 보여줍니다.
PHP에서는 uksort()
함수를 사용하여 배열을 정렬할 수 있습니다. 배열 키 이름의 길이를 기준으로 정렬합니다. 이 함수는 두 개의 키 이름을 비교하고 키 길이의 차이를 나타내는 정수를 반환하는 콜백 함수를 매개 변수로 받아들입니다. uksort()
函数根据数组键名的长度对数组进行排序。该函数接受一个回调函数作为参数,该函数比较两个键名并返回一个整数,表示键名长度的差值。
排序代码:
<?php function compareKeyLengths(string $key1, string $key2): int { return strlen($key1) - strlen($key2); } $array = ['key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3']; uksort($array, 'compareKeyLengths'); print_r($array);
输出:
Array ( [key1] => value1 [key2] => value2 [key3] => value3 )
如您所见,数组已根据键名长度进行排序,同时保留了键名。
实战案例:
这是一个将来自数据库的记录按字段名称长度排序的示例。
<?php $records = [ ['firstName' => 'John', 'lastName' => 'Doe'], ['firstName' => 'Jane', 'lastName' => 'Smith'], ['firstName' => 'Bob', 'lastName' => 'Johnson'], ]; uksort($records, 'compareKeyLengths'); foreach ($records as $record) { echo 'Name: ' . $record['firstName'] . ' ' . $record['lastName'] . PHP_EOL; }
输出:
Name: Bob Johnson Name: Jane Smith Name: John Doe
注意:
uksort()
函数将保持原始顺序。-
和 +
uksort()
함수 원래 순서를 유지합니다. 🎜-
및 +
)를 바꿀 수 있습니다. 🎜🎜위 내용은 PHP에서 길이에 따라 배열 키를 정렬하고 키를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!