>백엔드 개발 >PHP 튜토리얼 >PHP 정렬 기능에 대한 자세한 설명(예제 포함)

PHP 정렬 기능에 대한 자세한 설명(예제 포함)

王林
王林원래의
2019-08-31 14:36:205104검색

PHP 정렬 기능에 대한 자세한 설명(예제 포함)

정렬 방법에는 여러 가지가 있습니다. 일반적으로 우리가 자주 사용하는 배열 정렬 기능은 sort(), rsort(), asort(), arsort(), ksort(), krsort( )입니다. 다음은 모든 사람을 위한 자세한 소개입니다.

sort(array,sortingtype);

PHP 정렬 기능에 대한 자세한 설명(예제 포함)

0 = SORT_REGULAR - 기본값. 각 항목을 일반 순서로 배치합니다(표준 ASCII, 유형 변경 없음)

1 = SORT_NUMERIC - 각 항목을 숫자로 처리합니다.

2 = SORT_STRING - 각 항목을 문자열로 처리합니다.

3 = SORT_LOCALE_STRING - 현재 로케일을 기반으로 각 항목을 문자열로 처리합니다(setlocale()을 통해 변경 가능).

4 = SORT_NATURAL - natsort()와 같은 자연 정렬을 사용하여 각 항목을 문자열로 처리합니다.

5 = SORT_FLAG_CASE - SORT_STRING 또는 SORT_NATURAL과 결합하여(비트 OR) 문자열을 대소문자를 구분하지 않고 정렬할 수 있습니다.

정의 및 사용법:

sort() 함수는 인덱스 배열을 오름차순으로 정렬합니다.

rsort() 함수는 인덱스 배열을 내림차순으로 정렬하며, 다른 사용법은 동일합니다.

참고: 이 함수는 배열의 장치에 새 키 이름을 할당합니다. 원래 키 이름은 삭제됩니다.

성공하면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

팁: 인덱스 배열을 내림차순으로 정렬하려면 rsort() 함수를 사용하세요.

sort() 함수는 배열 셀을 낮은 것부터 높은 것 순으로 정렬하는 데 사용됩니다.

rsort() 함수는 배열 셀을 높은 순서에서 낮은 순서로 정렬하는 데 사용됩니다.

asort() 함수는 배열 셀을 낮은 것부터 높은 것 순으로 정렬하고 인덱스 관계를 유지하는 데 사용됩니다.

PHP asort() 함수는 배열 셀을 낮은 것에서 높은 것으로 정렬하고 인덱스 관계를 유지하는 데 사용됩니다. 성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.

arsort() 함수는 배열 셀을 높은 순서에서 낮은 순서로 정렬하고 인덱스 관계를 유지하는 데 사용됩니다.

PHP arsort() 함수는 asort()와 반대로 동작합니다. 배열 셀을 높은 순으로 정렬하고 인덱스 관계를 유지합니다. asort() 함수 사용을 참조하세요.

ksort() 함수는 키 이름을 기준으로 배열 셀을 낮은 순서에서 높은 순서로 정렬하는 데 사용됩니다.

PHP ksort() 함수는 키 이름을 기준으로 배열 셀을 낮은 것에서 높은 것으로 정렬하는 데 사용됩니다. 성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다. 이 함수는 원래 키 이름을 유지하므로 연관 배열에서 자주 사용됩니다.

krsort() 函数用于对数组单元按照键名从高到低进行排序。

PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

使用用户自定义的比较函数对数组 $a 中的元素进行排序:

usort(array,myfunction);
<?php
function my_sort($a,$b){
   if ($a==$b) return 0;
   return ($a<$b)?-1:1;
}

$a=array(4,2,8,6);
usort($a,"my_sort");

$arrlength=count($a);
for($x=0;$x<$arrlength;$x++)
   {
      echo $a[$x];
      echo "<br>";
   }?>
1、使用array_multisort

使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下:

代码如下:<?php
$ages = array();
foreach ($users as $user) {
  $ages[] = $user[&#39;age&#39;];
}
array_multisort($ages, SORT_ASC, $users);

执行后,$users就是排序好的数组了,可以打印出来看看。如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用:

代码如下:
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
2、使用usort
使用这个方法最大的好处就是可以自定义一些比较复杂的排序方法。例如按照名称的长度降序排列:

代码如下:
<?php
      usort($users, function($a, $b) {
      $al = strlen($a[&#39;name&#39;]);
      $bl = strlen($b[&#39;name&#39;]);
      if ($al == $bl) 
          return 0;      
          return ($al > $bl) ? -1 : 1;
    });

这里使用了匿名函数,如果有需要也可以单独提取出来。其中$a, $b可以理解为$users数组下的元素,可以直接索引name值,
并计算长度,而后比较长度就可以了。

以上是工作中常用的数组排序方法,想了解更多相关问题请访问PHP中文网:PHP视频教程

위 내용은 PHP 정렬 기능에 대한 자세한 설명(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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