>백엔드 개발 >PHP 튜토리얼 >PHP의 일반적인 배열 정렬 방법 요약

PHP의 일반적인 배열 정렬 방법 요약

藏色散人
藏色散人앞으로
2020-12-15 09:30:144558검색

1. 단순 배열 정렬 sort() 함수 및 rsort() 함수:

sort() 函数和rsort() 函数:

语法规则:

bool sort(array &array [,int sort_flags]
bool rsort(array &array [.int_sort_flags]

参数:

  第一个参数是排序数组对象

  第二个参数是可以选的 可选值:

    SORT_REGULAR:是默认值,将自动识别数组的元素类型进行排序
    SORT_NUMERIC:用于数组元素排序
    SORT_STRING:用于字符串排序
    SORT_LOCALE_STRING:根据当前的locale设置来把元素当作字符串比较

示例:

$a=array(4,7,9,1);
sort($a);
pirnt_r($a);
rsort($a);
print_r($a);

2.根据键名对数组排序

定义: ksort() 函数按照键名对数组进行有小到大的排序。 krsort()ksort()函数相反,排序后为数组值保持原来的键。

示例

$data= array(5=>"five",8=>"eight",1=>"one",7=>"seven");
ksrot($data);
print_r($data);
krsot($data);
print_r($data);

3.根据元素值排序

定义 : asort() 从小到大 /  arsort() 从大到小,用这个函数排序,原始键名将被忽略,使用依次数字重新索引数组下标

示例 :

$data=array("a"=>1,"b"=>2,"c"=>3);
asort($data);
print_r($data);
arsort($data);
print_r($data);

4.自然排序

定义 : 是个非常特殊的排序方式,这种方式使用认知而不是使用计算规则,这种特性称为——自然排序法,即数字从1到9,字母从a-z,短者优先。

示例 :

$data=array("file1.txt","file11.txt","file111.txt");
natsort($data);//普通自然排序
natcasesort($data);//忽略大小写

5.根据用户自定义排序规则

语法规则 : 

bool usort(array &array ,callback cmp_function)
bool uasort(array &array,callback cmp_function)
bool uksort(array &array,callback cmp_function)

说明 : 自定义回调函数,需要两个参数,分别是数组两个连续元素,比较第一个参数小于,大于,等于第二个参数是分别返回 0,1,-1

示例 : 

$data= array("ab","abc","a","ac","abcd");
usrot($data,"mysortByLen");
function mysortByLen($one,$two){
 if(strlen($one)== strlen($two)){
  return 0;
 }else{
 return (strlen($one)>strlen($two))?1:-1;
}

6.多维数组排序

定义 : array_multisort() 문법 규칙:

bool array_multisort(array array1 [,mixed arg,[,array ....]])

매개변수:

첫 번째 매개변수는 Sorting입니다. 배열 객체

 두 번째 매개변수는 선택적 값입니다: SORT_REGULAR: 기본값이며 정렬을 위해 배열의 요소 유형을 자동으로 식별합니다.
 SORT_NUMERIC: 배열 요소 정렬에 사용
SORT_STRING: 문자열 정렬에 사용
SORT_LOCALE_STRING: 요소를 문자열 비교로 처리

🎜예:🎜
$data=array(
  array("id"=>1,"name"=>4),
  array("id"=>1,"name"=>2),
  array("id"=>2,"name"=>3)
);
foreach($data as $key=>$value){
 $ids[$key]=$value["id"];
 $names[$key]=$value["name"]
}
array_multisort($data,$ids,$names);
print_r($data);
🎜2. 키 이름에 따라 배열 정렬🎜정의: ksort() 이 함수는 키 이름에 따라 배열을 작은 것부터 큰 것까지 정렬합니다. krsort()는 정렬 후 배열 값에 대한 원래 키를 유지하는 ksort() 함수의 반대입니다. 🎜🎜Example🎜
array(    array("id"=>1,"name"=>2),    array("id"=>1,"name"=>4),    array("id"=>2,"name"=>3)
 );
🎜3. 요소 값에 따른 정렬🎜정의: asort() 작은 것부터 큰 것까지/ arsort() 큰 것부터 작은 것까지, 이 함수 정렬을 사용하면 원래 키 이름이 무시되고 배열 첨자는 연속 번호를 사용하여 다시 색인화됩니다.🎜🎜예:🎜rrreee🎜4 자연 정렬🎜정의: 매우 특별한 정렬 방법입니다. 계산 규칙을 ​​사용하는 대신 인식을 사용하는 이 기능을 자연 순서, 즉 1부터 9까지의 숫자와 a부터 z까지의 문자 중 짧은 것이 우선하도록 하는 기능이라고 합니다. 🎜🎜예:🎜rrreee🎜5. 사용자 정의 정렬 규칙에 따름🎜문법 규칙: 🎜rrreee🎜설명: 사용자 정의 콜백 함수에는 배열의 두 연속 요소인 두 개의 매개변수가 필요합니다. 두 번째 매개변수는 각각 0, 1, -1을 반환합니다.🎜🎜예: 🎜rrreee🎜6. 다차원 배열 정렬🎜정의: array_multisort() code>Function pair 여러 배열을 정렬하거나 하나 이상의 차원에 따라 다차원 배열을 정렬합니다. 🎜rrreee🎜예: 🎜rrreee🎜출력 결과: 🎜rrreee🎜 권장: "🎜PHP Video Tutorial🎜"🎜

위 내용은 PHP의 일반적인 배열 정렬 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제