PHP에서 1차원 배열을 2차원 배열로 변환

王林
풀어 주다: 2023-05-23 11:10:37
원래의
1108명이 탐색했습니다.

PHP에서는 1차원 배열을 2차원 배열로 변환해야 하는 경우가 있습니다. 예를 들어, 많은 양의 데이터가 포함된 1차원 배열을 처리해야 하지만 특정 규칙에 따라 데이터를 그룹화해야 하는 경우가 있습니다. 이 경우 1차원 배열을 2차원 배열로 변환해야 합니다. 정렬.

다음으로 1차원 배열을 2차원 배열로 변환하는 방법을 소개하겠습니다.

방법 1: for 루프 사용

먼저 for 루프를 사용하여 1차원 배열을 순회한 다음 데이터 그룹화에 따라 새로운 2차원 배열에 데이터를 추가할 수 있습니다. 이 방법은 비교적 간단하지만 일부 변수를 수동으로 유지 관리해야 하므로 번거롭습니다.

구현 코드는 다음과 같습니다.

 "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차원 배열로 변환할 수 있습니다.

구현 코드는 다음과 같습니다.

 "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 함수는 처리를 위해 하나 이상의 배열의 각 요소를 콜백 함수에 전달한 다음 처리된 결과를 반환할 수 있습니다. 이 처리 방법을 사용하면 순환 사용을 피할 수 있습니다.

구현 코드는 다음과 같습니다.

 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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