PHP에서 다차원 배열 정렬
- PHP에서 우주선 연산자를 사용하여 다차원 배열 정렬하기
-
익명 비교 함수와 함께
usort()
함수를 사용하여 PHP에서 다차원 배열 정렬 -
사용자 정의 비교 함수와 함께
usort()
함수를 사용하여 PHP에서 다차원 배열 정렬
이 기사에서는 PHP에서 값을 기준으로 다차원 배열을 정렬하는 세 가지 방법을 소개합니다.
PHP에서 우주선 연산자를 사용하여 다차원 배열 정렬하기
우주선 연산자 <=>
를 사용하여 PHP에서 값으로 다차원 배열을 정렬할 수 있습니다. 우주선 연산자와 함께 usort()
함수를 사용합니다. 연산자는 PHP 7에서 도입되었습니다. 두 값을 비교하는 데 사용됩니다. 두 피연산자가 같으면 정수 값 0
이 되고 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 0
보다 작으며 왼쪽 피연산자가 오른쪽보다 크면 0
보다 큽니다. 피연산자. 마찬가지로 usort()
함수는 사용자 정의 비교 함수를 고려하여 값으로 배열을 정렬합니다. 함수의 구문은 아래와 같습니다.
usort($array, $callback)
여기서 $array
는 정렬할 배열입니다. $callback
옵션은 배열의 첫 번째 인수와 두 번째 인수를 비교하는 익명의 콜백 함수입니다.
예를 들어 다음 배열을 정렬한다고 가정해 보겠습니다. age
키 값으로 배열을 정렬합니다.
$info = array(
array('name' => 'Jadon', 'age' => 21, 'country' => 'England'),
array('name' => 'Marcus', 'age' => 23, 'country' => 'England'),
array('name' => 'Anthony', 'age' => 24, 'country' => 'France'),
array('name' => 'Mason', 'age' => 19, 'country' => 'England'),
array('name' => 'Dan', 'age' => 23, 'country' => 'Wales'),
);
PHP 여는 태그 안에 $info
배열과 두 개의 인수로 익명 함수를 사용하여 usort()
함수를 작성합니다. 익명 함수에는 $x
및 $y
가 매개변수로 있습니다. 함수 본문 내에서 우주선 연산자를 사용하여 두 인수의 나이를 $x['age'] <=> $y['age']
로 비교하고 값을 반환합니다. 다음으로, PHP 여는 태그를 닫습니다. 그런 다음 print_r()
PHP 함수를 사용하여 HTML <pre>
태그 안에 $info
배열을 인쇄합니다.
따라서 배열은 출력 섹션에 표시된 대로 age
값에 따라 정렬됩니다.
예제 코드:
<?php
usort($info, function($x, $y) {
return $x['age'] <=> $y['age'];
});
?>
<pre><?php print_r($info);?> </pre>
출력:
Array
(
[0] => Array
(
[name] => Mason
[age] => 19
[country] => England
)
[1] => Array
(
[name] => Jadon
[age] => 21
[country] => England
)
[2] => Array
(
[name] => Marcus
[age] => 23
[country] => England
)
[3] => Array
(
[name] => Dan
[age] => 23
[country] => Wales
)
[4] => Array
(
[name] => Anthony
[age] => 24
[country] => France
)
)
익명 비교 함수와 함께 usort()
함수를 사용하여 PHP에서 다차원 배열 정렬
첫 번째 방법에서 사용된 usort()
함수를 사용하여 익명 콜백 함수와 함께 값으로 다차원 배열을 정렬할 수 있습니다. 이 방법에서는 우주선 <=>
연산자 대신 빼기 연산자를 사용합니다. 배열이 정렬된 기준에 따라 배열의 값을 뺄 수 있습니다. 따라서 배열을 정렬할 수 있습니다. 동일한 배열 $info
를 사용하여 $age
값으로 정렬합니다. 우주선 연산자는 PHP 7에서만 도입되었으므로 이 방법은 PHP 7 이전에 사용할 수 있습니다.
예를 들어 위와 같이 매개변수를 사용하여 usort()
함수를 작성합니다. 익명 함수의 본문에서 두 인수의 빼기를 $x['age'] - $y['age']
로 반환합니다. 위와 같이 print_r()
을 사용하여 배열을 인쇄하십시오. 첫 번째 방법과 동일한 출력을 받게 됩니다.
예제 코드:
<?php
usort($info, function($x, $y) {
return $x['age'] - $y['age'];
});
?>
<pre><?php print_r($info);?> </pre>
사용자 정의 비교 함수와 함께 usort()
함수를 사용하여 PHP에서 다차원 배열 정렬
이 방법은 두 번째 방법과 매우 유사합니다. 유일한 차이점은 익명 함수 대신 사용자 정의 비교 함수를 사용한다는 것입니다. 이 방법은 PHP 5.3 버전 이전에 사용할 수 있습니다. 익명 함수의 개념이 PHP 5.3에서 도입되었기 때문입니다.
예를 들어, $x
및 $y
를 매개변수로 사용하여 sortByAge()
사용자 정의 함수를 생성합니다. 함수 본체 내부에는 위와 같이 나이를 빼서 작성합니다. 함수 외부에서 $info
배열과 sortByAge
를 인수로 사용하여 usort()
함수를 작성합니다. 마지막으로 배열을 인쇄합니다.
아래 예는 첫 번째 방법과 동일한 출력을 표시합니다.
예제 코드:
<?php
function sortByAge($x, $y) {
return $x['age'] - $y['age'];
}
usort($info, 'sortByAge');
?>
<pre><?php print_r($info);?> </pre>
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn