PHP에서는 1차원 배열을 2차원 배열로 변환해야 하는 경우가 있습니다. 예를 들어, 많은 양의 데이터가 포함된 1차원 배열을 처리해야 하지만 특정 규칙에 따라 데이터를 그룹화해야 하는 경우가 있습니다. 이 경우 1차원 배열을 2차원 배열로 변환해야 합니다. 정렬.
다음으로 1차원 배열을 2차원 배열로 변환하는 방법을 소개하겠습니다.
방법 1: for 루프 사용
먼저 for 루프를 사용하여 1차원 배열을 순회한 다음 데이터 그룹화에 따라 새로운 2차원 배열에 데이터를 추가할 수 있습니다. 이 방법은 비교적 간단하지만 일부 변수를 수동으로 유지 관리해야 하므로 번거롭습니다.
구현 코드는 다음과 같습니다.
<?php // 定义一维数组 $arr = array( array("name" => "Tom", "age" => 18, "sex" => "male"), array("name" => "Jerry", "age" => 20, "sex" => "female"), array("name" => "Lucy", "age" => 21, "sex" => "female"), array("name" => "Bob", "age" => 22, "sex" => "male") ); // 新的二位数组 $newArr = array(); // 遍历一维数组 for ($i = 0; $i < count($arr); $i++) { $sex = $arr[$i]["sex"]; $newArr[$sex][] = $arr[$i]; } // 打印结果 print_r($newArr);
실행 결과는 다음과 같습니다.
Array ( [male] => Array ( [0] => Array ( [name] => Tom [age] => 18 [sex] => male ) [1] => Array ( [name] => Bob [age] => 22 [sex] => male ) ) [female] => Array ( [0] => Array ( [name] => Jerry [age] => 20 [sex] => female ) [1] => Array ( [name] => Lucy [age] => 21 [sex] => female ) ) )
방법 2: array_reduce 함수 사용
PHP의 array_reduce 함수는 배열의 값을 반복적으로 결합하여 단일 값으로 만들 수 있습니다. 맞춤 기능. array_reduce 함수를 사용하여 1차원 배열을 2차원 배열로 변환할 수 있습니다.
구현 코드는 다음과 같습니다.
<?php // 定义一维数组 $arr = array( array("name" => "Tom", "age" => 18, "sex" => "male"), array("name" => "Jerry", "age" => 20, "sex" => "female"), array("name" => "Lucy", "age" => 21, "sex" => "female"), array("name" => "Bob", "age" => 22, "sex" => "male") ); // 使用 array_reduce 函数 $newArr = array_reduce($arr, function($carry, $item) { $sex = $item["sex"]; if (!isset($carry[$sex])) { $carry[$sex] = array(); } $carry[$sex][] = $item; return $carry; }, array()); // 打印结果 print_r($newArr);
실행 결과는 방법 1과 같습니다.
방법 3: array_map 함수 사용
PHP의 array_map 함수는 처리를 위해 하나 이상의 배열의 각 요소를 콜백 함수에 전달한 다음 처리된 결과를 반환할 수 있습니다. 이 처리 방법을 사용하면 순환 사용을 피할 수 있습니다.
구현 코드는 다음과 같습니다.
<?php // 定义一维数组 $arr = array( array("name" => "Tom", "age" => 18, "sex" => "male"), array("name" => "Jerry", "age" => 20, "sex" => "female"), array("name" => "Lucy", "age" => 21, "sex" => "female"), array("name" => "Bob", "age" => 22, "sex" => "male") ); // 使用 array_map 函数 $newArr = array_map(function($item) { $sex = $item["sex"]; return array($sex => $item); }, $arr); // 将处理后的二维数组进行合并 $newArr = call_user_func_array("array_merge", $newArr); // 打印结果 print_r($newArr);
연산 결과는 방법 1, 방법 2와 같습니다.
요약
이 글에서는 for 루프, array_reduce 함수, array_map 함수를 사용하여 1차원 배열을 2차원 배열로 변환하는 세 가지 방법을 소개했습니다.
이러한 방법에는 모두 장단점이 있으며 어떤 방법을 선택할 것인지도 실제 상황에 따라 판단해야 합니다. 그러나 일반적으로 array_reduce 함수와 array_map 함수를 사용하는 것이 더 간결하고 우아합니다.
위 내용은 PHP에서 1차원 배열을 2차원 배열로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

WebStorm Mac 버전
유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
