>백엔드 개발 >PHP 튜토리얼 >PHP에서 사용자 정의 비교 함수를 사용하여 배열을 정렬하고 키 이름을 보존하는 방법은 무엇입니까?

PHP에서 사용자 정의 비교 함수를 사용하여 배열을 정렬하고 키 이름을 보존하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-05-04 11:51:01554검색

PHP에서 사용자 정의 비교 함수를 사용하면 배열을 정렬하고 키 이름을 보존할 수 있습니다. 이를 수행하려면 배열과 콜백 함수를 매개변수로 사용하는 usort() 함수를 사용할 수 있습니다. 콜백 함수는 두 개의 배열 요소를 받고 정렬 순서를 나타내는 정수(-1, 0 또는 1)를 반환합니다.

PHP 中如何使用自定义比较函数对数组进行排序,并保留键名?

사용자 정의 비교 함수를 사용하여 PHP에서 배열을 정렬하고 키 이름을 유지합니다.

사용자 정의 비교 함수를 사용하여 배열을 정렬하는 것은 배열 작업에서 일반적인 작업입니다. PHP에서는 usort() 함수를 사용하여 쉽게 수행할 수 있습니다. usort() 函数轻松实现此目的。

语法

usort(array, callable)
  • array:要排序的数组。
  • callable:用于比较数组元素的回调函数。它必须接受两个参数(两个数组元素),并返回一个整数(-1、0 或 1)。

实战案例

以下示例展示了如何使用自定义比较函数对数组中的键名进行排序,同时保留键名:

<?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
)
  • 배열:정렬할 배열입니다.
  • callable: 배열 요소를 비교하는 데 사용되는 콜백 함수입니다. 두 개의 인수(두 개의 배열 요소)를 허용하고 정수(-1, 0 또는 1)를 반환해야 합니다.

실용 사례

다음 예에서는 사용자 정의 비교 함수를 사용하여 키 이름을 유지하면서 배열의 키 이름을 정렬하는 방법을 보여줍니다.

rrreee

이 예에서는 비교 함수는 두 개의 키 이름($a['key']$b['key'])을 매개변수로 사용하고 strcmp() 함수는 이를 비교합니다. strcmp() 함수는 -1, 0 또는 1을 반환하여 첫 번째 문자열이 두 번째 문자열보다 작거나 같거나 큰지 여부를 나타냅니다.

usort() 함수가 호출되면 지정된 비교 함수를 $arr 배열의 각 요소에 적용합니다. compare 함수가 -1을 반환하면 첫 번째 요소가 두 번째 요소보다 먼저 정렬됩니다. 1을 반환하면 그 반대가 됩니다. 0을 반환하면 요소의 순서는 변경되지 않습니다. 🎜🎜최종 출력은 다음과 같습니다. 🎜rrreee🎜배열은 키 이름을 유지하면서 키 이름에 따라 작은 것부터 큰 것까지 정렬됩니다. 🎜

위 내용은 PHP에서 사용자 정의 비교 함수를 사용하여 배열을 정렬하고 키 이름을 보존하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.