>백엔드 개발 >PHP 튜토리얼 >PHP8.1의 새로운 숫자 정렬 기능

PHP8.1의 새로운 숫자 정렬 기능

王林
王林원래의
2023-07-09 22:07:351071검색

PHP8.1의 새로운 숫자 정렬 기능

PHP는 웹 개발에 널리 사용되는 오픈 소스 스크립팅 언어입니다. 강력할 뿐만 아니라 풍부한 내장 함수 라이브러리도 갖추고 있습니다. 최근 출시된 PHP 8.1 버전에는 숫자 정렬 기능을 포함하여 몇 가지 흥미로운 기능이 추가되었습니다. 이러한 새로운 기능을 사용하면 개발자가 숫자 배열을 더 쉽게 정렬할 수 있어 개발 효율성과 코드 가독성이 향상됩니다.

과거 PHP 버전에서는 일반적으로 sort() 또는 rsort() 함수를 사용하여 배열을 정렬했지만, 이 함수는 기본적으로 사전 정렬을 사용했으며, 또한 정렬됩니다. 문자열의 비교 규칙에 따라 이로 인해 숫자 배열을 정렬할 때 예상치 못한 결과가 발생할 수 있습니다. PHP8.1에서는 두 가지 새로운 함수인 usort()uasort()를 사용하여 숫자 정렬을 포함한 사용자 정의 정렬 규칙을 통해 배열을 정렬할 수 있습니다. sort()rsort()函数对数组进行排序,但这些函数默认使用的是字典排序,也就是按照字符串的比较规则进行排序。这样在对数字数组进行排序时,可能会得到不符合预期的结果。而在PHP8.1中,新增了usort()uasort()两个函数,可以通过自定义的排序规则对数组进行排序,包括数字排序。

接下来,我们将介绍这两个新函数的用法,并通过示例代码演示它们的功能。

首先是usort()函数,它接受两个参数:需要进行排序的数组和一个自定义的比较函数。该函数在排序过程中会多次调用自定义函数来比较数组中的元素,以确定它们的顺序。自定义函数需要返回一个整数值,表示两个元素的比较结果。

下面是一个使用usort()函数对数字数组进行从小到大排序的示例代码:

$numbers = [5, 2, 8, 1, 9];

usort($numbers, fn($a, $b) => $a - $b);

print_r($numbers);

输出结果为:Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 8 [4] => 9 )。可以看到,数组中的数字已经按照从小到大的顺序进行了排序。

usort()函数类似,uasort()函数也是接受两个参数:需要进行排序的数组和一个自定义的比较函数。不同之处在于,uasort()函数在排序过程中会保留数组的键-值关系,而不仅仅是根据值进行排序。

下面是一个使用uasort()函数对关联数组进行从大到小排序的示例代码:

$grades = [
    'Alice' => 85,
    'Bob' => 92,
    'Charlie' => 78,
    'David' => 89
];

uasort($grades, fn($a, $b) => $b - $a);

print_r($grades);

输出结果为:Array ( [Bob] => 92 [David] => 89 [Alice] => 85 [Charlie] => 78 )。可以看到,数组中的元素按照从大到小的顺序排列,并且键-值关系保持不变。

总结起来,PHP8.1新增的数字排序函数usort()uasort()
다음으로 이 두 가지 새로운 기능의 사용법을 소개하고 샘플 코드를 통해 해당 기능을 시연해 보겠습니다.

첫 번째는 usort() 함수로, 정렬할 배열과 사용자 정의 비교 함수라는 두 가지 매개변수를 받습니다. 이 함수는 정렬 프로세스 중에 사용자 정의 함수를 여러 번 호출하여 배열의 요소를 비교하여 순서를 결정합니다. 사용자 정의 함수는 두 요소의 비교 결과를 나타내는 정수 값을 반환해야 합니다.

🎜다음은 usort() 함수를 사용하여 숫자 배열을 작은 것부터 큰 것까지 정렬하는 샘플 코드입니다. 🎜rrreee🎜출력 결과는 다음과 같습니다. Array ( [0] =&gt ; 1 [1 ] => 2 [2] => 5 [3] => 9 ) 보시다시피 배열의 숫자는 작은 것부터 큰 것 순으로 정렬되었습니다. 🎜🎜usort() 함수와 유사하게 uasort() 함수도 두 개의 매개변수, 즉 정렬할 배열과 사용자 정의 비교 함수를 허용합니다. 차이점은 uasort() 함수는 단순히 값을 기준으로 정렬하는 것이 아니라 정렬 프로세스 중에 배열의 키-값 관계를 유지한다는 것입니다. 🎜🎜다음은 uasort() 함수를 사용하여 연관 배열을 큰 것부터 작은 것 순으로 정렬하는 샘플 코드입니다. 🎜rrreee🎜출력 결과는 다음과 같습니다. Array ( [Bob] =&gt ; 92 [ 데이빗] => 89 [앨리스] => 85 [찰리] => 78 ) 보시다시피 배열의 요소는 내림차순으로 정렬되며 키-값 관계는 변경되지 않습니다. 🎜🎜요약하자면, PHP8.1의 새로운 숫자 정렬 기능 usort()uasort()는 개발자에게 보다 유연한 정렬 옵션을 제공하여 숫자 정렬을 더 쉽게 만듭니다. 배열 정렬이 더 편리하고 효율적입니다. 🎜소형에서 대형까지, 대형에서 소형까지 이 두 기능은 맞춤형 비교 기능을 통해 개발자의 요구를 충족할 수 있습니다. 실제 응용 프로그램에서는 코드의 가독성과 유지 관리성을 향상시키기 위해 다양한 정렬 요구 사항에 따라 이 두 기능을 사용하도록 선택할 수 있습니다. 🎜🎜숫자 배열을 정렬하기 위해 여전히 기존 정렬 방법을 사용하고 있다면 이 두 가지 새로운 기능을 사용해 보는 것이 좋을 것입니다. 놀라실 것입니다. PHP8.1의 새로운 기능을 환영하고, 개발 효율성을 향상시키며, 더욱 우아한 코드를 작성해 봅시다! 🎜

위 내용은 PHP8.1의 새로운 숫자 정렬 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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