>백엔드 개발 >PHP 문제 >PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

青灯夜游
青灯夜游원래의
2021-08-23 19:45:599021검색

이전 글 "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(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
    // 取得列的列表
    foreach ($data as $key => $row)
    {
        $ID[$key]  = $row[&#39;id&#39;];
        $FirstName[$key] = $row[&#39;first_name&#39;];
				$LastName[$key] = $row[&#39;last_name&#39;];
    }

    array_multisort($ID, SORT_ASC, $data);

var_dump($data);
?>

分析一下代码:

  • 使用foreach循环将同一字段的数据放在一起,使用var_dump($ID)var_dump($FirstName)var_dump($LastName)输出各个字段数据试试:

    PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

  • 使用array_multisort($ID, SORT_ASC, $data)根据二维数组$data中 “id”那一列字段进行升序排序。

因此输出结果:

PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

而如果想要根据id降序排列,只要将该函数第二个参数设置为SORT_DESC即可:

array_multisort($ID, SORT_DESC, $data);

输出结果:

PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

如果想要根据last_name进行排序,只要将该函数第一个参数设置为$LastName数组即可

array_multisort($LastName, SORT_DESC, $data);

输出结果:

PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

下面我们来了解一下array_multisort()函数:

array_multisort() 函数返回一个排序数组。用户可以输入一个或多个数组,该函数会先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。语法如下:

array_multisort(array1,sorting order,sorting type,array2,array3...)

PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

方法2:array_column()函数+array_multisort()函数

在方法1中,我们是利用foreach循环来获取同一字段的数据,这有点复杂。其实,可以使用array_column()函数来实现这一操作。array_column()函数可以返回输入数组中某个单一列的值。

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
//根据字段id对数组$data进行升序排列
$key = array_column($data,&#39;id&#39;);
array_multisort($key,SORT_ASC,$data);

var_dump($data);
?>

输出结果:

PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

想要根据哪个字段来排序就将array_column($data,'id')
방법 1: foreach 루프 + array_multisort() 함수

$key = array_column($data,&#39;first_name&#39;);
array_multisort($key,SORT_DESC,$data);

코드 분석:

  • foreach 루프를 사용하여 같은 필드의 데이터를 모아서 var_dump($ID), var_dump($FirstName), var_dump($LastName)를 이용해 출력합니다. 각 필드 데이터를 사용해 보세요: PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

    PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

  • array_multisort($ID, SORT_ASC, $data)를 사용하여 "id" 열 필드를 기반으로 오름차순을 수행합니다. 2차원 배열 $data 정렬.

그래서 출력 결과는 다음과 같습니다:

PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)

그리고 ID를 기준으로 내림차순으로 정렬하려면 함수의 두 번째 매개변수를 SORT_DESC로 설정하세요.

array_column(array,column_key,index_key);

출력 결과 :

last_name을 기준으로 정렬하려면 함수의 첫 번째 매개변수를 $LastName 배열rrreee출력 결과로 설정하세요.

🎜PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)🎜🎜array_multisort() 함수를 살펴보겠습니다: 🎜🎜🎜array_multisort() 이 함수는 정렬된 배열을 반환합니다. . 사용자는 하나 이상의 배열을 입력할 수 있으며 함수는 첫 번째 배열을 정렬한 다음 다른 배열을 정렬하고 두 개 이상의 값이 동일하면 다음 배열을 정렬합니다. 구문은 다음과 같습니다: 🎜rrreee🎜3. png🎜🎜방법 2: array_column() 함수 + array_multisort() 함수🎜🎜방법 1에서는 foreach 루프를 사용하여 동일한 필드의 데이터를 가져오는데 이는 약간 복잡합니다. . 실제로 이 작업을 수행하려면 array_column() 함수를 사용할 수 있습니다. array_column() 함수는 입력 배열의 단일 열 값을 반환할 수 있습니다. 🎜rrreee🎜출력 결과: 🎜🎜PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법) 🎜🎜어떤 필드를 기준으로 정렬하려면 array_column($data,'id') 함수의 두 번째 매개변수를 해당 필드(키 값)로 바꾸면 됩니다. 예를 들어 "first_name" 필드를 기준으로 내림차순으로 정렬하려는 경우 다음을 수행할 수 있습니다. 🎜🎜rrreee🎜 출력 결과: 🎜🎜🎜🎜🎜 array_column() 함수를 살펴보겠습니다. 🎜🎜array_column() 입력 배열 값의 단일 열을 반환합니다. 구문 형식은 다음과 같습니다. 🎜rrreee🎜🎜🎜🎜반환 값: 배열을 반환합니다. 배열 값은 입력 배열의 단일 열 값입니다.​ 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 동영상 튜토리얼🎜🎜🎜마지막으로 PHP 배열에 대한 무료 동영상 튜토리얼을 추천합니다: 🎜PHP 함수 배열 배열 함수 동영상 설명🎜, 와서 배워보세요! 🎜

위 내용은 PHP 배열 학습에서 2차원 배열을 정렬하는 방법(2가지 방법)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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