이전 글 "PHP에서 배열 학습: 요소 조각을 가로채는 방법(두 가지 방법) "에서 배열을 가로채고 부분 배열 요소 조각을 반환하는 방법을 소개했습니다. 두 가지 방법. 이번에는 PHP 배열에 대한 공부를 계속하고 2차원 배열 요소를 정렬하는 방법에 대해 이야기합니다. 관심 있는 친구들은 배울 수 있습니다. 더 알아보기~
→관련 추천 : 《PHP 배열 학습 시리즈 요약(지속적으로 업데이트~)》
1차원 배열의 여러 정렬 방법에 대해 알아보기 전에, PHP에는 많은 내장 배열이 내장되어 있다는 것을 알고 있었습니다. 1차원 배열의 내림차순 정렬과 오름차순 정렬을 구현하는 함수입니다. 그렇다면 2차원 배열에도 정렬을 구현하는 내장 함수가 있습니까?
답은: 그렇습니다! PHP에는 2차원 배열을 정렬하는 데 사용할 수 있는 내장 array_multisort()
함수가 있습니다. 아래에서는 array_multisort() 함수를 사용하여 2차원 배열을 정렬하는 두 가지 방법을 소개합니다. array_multisort()
函数可实现二维数组的排序。下面我们给大家介绍两种利用array_multisort()函数对二维数组进行排序的方法。
方法1:foreach循环 + array_multisort()函数
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); // 取得列的列表 foreach ($data as $key => $row) { $ID[$key] = $row['id']; $FirstName[$key] = $row['first_name']; $LastName[$key] = $row['last_name']; } array_multisort($ID, SORT_ASC, $data); var_dump($data); ?>
分析一下代码:
使用foreach循环将同一字段的数据放在一起,使用var_dump($ID)
、var_dump($FirstName)
、var_dump($LastName)
输出各个字段数据试试:
使用array_multisort($ID, SORT_ASC, $data)
根据二维数组$data中 “id
”那一列字段进行升序排序。
因此输出结果:
而如果想要根据id降序排列,只要将该函数第二个参数设置为SORT_DESC
即可:
array_multisort($ID, SORT_DESC, $data);
输出结果:
如果想要根据last_name进行排序,只要将该函数第一个参数设置为$LastName数组即可
array_multisort($LastName, SORT_DESC, $data);
输出结果:
下面我们来了解一下array_multisort()函数:
array_multisort() 函数返回一个排序数组。用户可以输入一个或多个数组,该函数会先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。语法如下:
array_multisort(array1,sorting order,sorting type,array2,array3...)
方法2:array_column()函数+array_multisort()函数
在方法1中,我们是利用foreach循环来获取同一字段的数据,这有点复杂。其实,可以使用array_column()函数来实现这一操作。array_column()函数可以返回输入数组中某个单一列的值。
<?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Aobs', ) ); //根据字段id对数组$data进行升序排列 $key = array_column($data,'id'); array_multisort($key,SORT_ASC,$data); var_dump($data); ?>
输出结果:
想要根据哪个字段来排序就将array_column($data,'id')
방법 1: foreach 루프 + array_multisort() 함수
$key = array_column($data,'first_name'); array_multisort($key,SORT_DESC,$data);
코드 분석:
foreach 루프를 사용하여 같은 필드의 데이터를 모아서 var_dump($ID)
, var_dump($FirstName)
, var_dump($LastName)
를 이용해 출력합니다. 각 필드 데이터를 사용해 보세요:
array_multisort($ID, SORT_ASC, $data)
를 사용하여 "id
" 열 필드를 기반으로 오름차순을 수행합니다. 2차원 배열 $data 정렬.
그리고 ID를 기준으로 내림차순으로 정렬하려면 함수의 두 번째 매개변수를 SORT_DESC
로 설정하세요.
array_column(array,column_key,index_key);
last_name을 기준으로 정렬하려면 함수의 첫 번째 매개변수를 $LastName 배열rrreee출력 결과로 설정하세요.
🎜🎜🎜array_multisort() 함수를 살펴보겠습니다: 🎜🎜🎜array_multisort() 이 함수는 정렬된 배열을 반환합니다. . 사용자는 하나 이상의 배열을 입력할 수 있으며 함수는 첫 번째 배열을 정렬한 다음 다른 배열을 정렬하고 두 개 이상의 값이 동일하면 다음 배열을 정렬합니다. 구문은 다음과 같습니다: 🎜rrreee🎜🎜🎜방법 2: array_column() 함수 + array_multisort() 함수🎜🎜방법 1에서는 foreach 루프를 사용하여 동일한 필드의 데이터를 가져오는데 이는 약간 복잡합니다. . 실제로 이 작업을 수행하려면 array_column() 함수를 사용할 수 있습니다. array_column() 함수는 입력 배열의 단일 열 값을 반환할 수 있습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜어떤 필드를 기준으로 정렬하려면array_column($data,'id')
함수의 두 번째 매개변수를 해당 필드(키 값)로 바꾸면 됩니다. 예를 들어 "first_name" 필드를 기준으로 내림차순으로 정렬하려는 경우 다음을 수행할 수 있습니다. 🎜🎜rrreee🎜 출력 결과: 🎜🎜🎜🎜🎜 array_column() 함수를 살펴보겠습니다. 🎜🎜array_column() 입력 배열 값의 단일 열을 반환합니다. 구문 형식은 다음과 같습니다. 🎜rrreee🎜🎜🎜🎜반환 값: 배열을 반환합니다. 배열 값은 입력 배열의 단일 열 값입니다. 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 동영상 튜토리얼🎜🎜🎜마지막으로 PHP 배열에 대한 무료 동영상 튜토리얼을 추천합니다: 🎜PHP 함수 배열 배열 함수 동영상 설명🎜, 와서 배워보세요! 🎜위 내용은 PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!