PHP 배열 다차원 정렬 연습: 간단한 시나리오부터 복잡한 시나리오까지

WBOY
풀어 주다: 2024-04-29 21:12:02
원래의
753명이 탐색했습니다.

다차원 배열 정렬은 단일 열 정렬과 중첩 정렬로 나눌 수 있습니다. 단일 열 정렬은 array_multisort() 함수를 사용하여 열별로 정렬할 수 있습니다. 중첩 정렬에는 배열을 순회하고 정렬하는 재귀 함수가 필요합니다. 실제 사례로는 제품명별 정렬, 판매량 및 가격별 복합 정렬 등이 있습니다.

PHP 배열 다차원 정렬 연습: 간단한 시나리오부터 복잡한 시나리오까지

PHP 배열 다차원 정렬 연습: 단순한 시나리오에서 복잡한 시나리오까지

소개

PHP에서 다차원 배열 정렬은 일반적으로 복잡한 작업입니다. 이 튜토리얼에서는 간단한 단일 열 정렬부터 복잡한 중첩 정렬까지 다양한 시나리오를 기반으로 다차원 배열을 정렬하는 방법을 단계별로 안내합니다.

단일 열 정렬

가장 간단한 다차원 배열 정렬은 단일 열을 기준으로 정렬하는 것입니다.array_multisort()함수를 사용할 수 있습니다:

$arr = [ ['id' => 1, 'name' => 'John Doe'], ['id' => 3, 'name' => 'Jane Smith'], ['id' => 2, 'name' => 'Bob Johnson'], ]; array_multisort(array_column($arr, 'id'), SORT_ASC, $arr); print_r($arr); // 输出: // Array // ( // [0] => Array // ( // [id] => 1 // [name] => John Doe // ) // [1] => Array // ( // [id] => 2 // [name] => Bob Johnson // ) // [2] => Array // ( // [id] => 3 // [name] => Jane Smith // ) // )
로그인 후 복사

중첩 배열 정렬

중첩 배열의 경우 배열을 반복하고 정렬하려면 재귀 함수를 사용해야 합니다.

function sortNestedArray($arr, $col, $order) { if (!is_array($arr)) { return $arr; } uasort($arr, function($a, $b) use ($col, $order) { if ($a[$col] == $b[$col]) { return 0; } return ($a[$col] < $b[$col]) ? -1 : 1; }); foreach ($arr as &$item) { if (is_array($item)) { $item = sortNestedArray($item, $col, $order); } } return $arr; }
로그인 후 복사

실용 사례

사례 1: Press 제품명별로 중첩 배열 정렬

$products = [ ['id' => 1, 'name' => 'Apple', 'price' => 10], ['id' => 2, 'name' => 'Orange', 'price' => 15], ['id' => 3, 'name' => 'Banana', 'price' => 5], ]; $sortedProducts = sortNestedArray($products, 'name', SORT_ASC); // ... 处理排序后的数组 ...
로그인 후 복사

사례 2: 판매량 및 가격별로 중첩 배열 복합 정렬

$salesData = [ ['product' => 'Apple', 'count' => 10, 'price' => 10], ['product' => 'Orange', 'count' => 15, 'price' => 15], ['product' => 'Banana', 'count' => 5, 'price' => 5], ]; usort($salesData, function($a, $b) { if ($a['count'] == $b['count']) { return ($a['price'] < $b['price']) ? -1 : 1; } return ($a['count'] < $b['count']) ? 1 : -1; }); // ... 处理排序后的数据 ...
로그인 후 복사

위 내용은 PHP 배열 다차원 정렬 연습: 간단한 시나리오부터 복잡한 시나리오까지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!