PHP에서 개발자는 다양한 리소스에서 얻은 다차원 데이터 구조를 처리해야 하는 경우가 많으며 이러한 데이터 구조에는 매우 복잡한 데이터 유형이 포함될 수 있습니다. 다차원 배열은 이러한 데이터 구조를 다룰 때 매우 유용한 도구이지만 경우에 따라 다차원 배열을 2차원 배열로 변환해야 할 수도 있습니다.
이 기사에서는 보다 일반적인 데이터 처리 요구 사항에 맞게 PHP를 사용하여 다차원 배열을 2차원 배열로 변환하는 방법을 살펴보겠습니다.
다차원 배열을 2차원 배열로 변환하는 방법을 보여주기 위해 먼저 다차원 배열을 정의해야 합니다. 우리는 각각 세 개의 서로 다른 항목을 포함하는 세 가지 주요 범주가 있는 "Fruit" 배열을 만들 것입니다.
$fruits = array(
"apples" => array( array("brand" => "Granny Smith", "color" => "green", "price" => 0.75), array("brand" => "Fuji", "color" => "red", "price" => 0.50), array("brand" => "Golden Delicious", "color" => "yellow", "price" => 0.60) ), "oranges" => array( array("brand" => "Valencia", "color" => "orange", "price" => 0.80), array("brand" => "Navel", "color" => "orange", "price" => 0.85), array("brand" => "Blood", "color" => "red", "price" => 1.10) ), "bananas" => array( array("brand" => "Cavendish", "color" => "yellow", "price" => 0.25), array("brand" => "Lady Finger", "color" => "green", "price" => 0.30), array("brand" => "Red Dacca", "color" => "red", "price" => 0.35) )
);
위 배열에서 우리는 세 가지 범주를 포함하는 과일 배열을 만들었습니다. 각 범주에는 세 가지 다른 브랜드, 색상 및 가격 조합이 포함되어 있습니다.
이제 다차원 배열을 정의하고 구성 방법을 이해했으므로 이를 2D 배열로 변환하는 코드 작성을 시작할 수 있습니다.
다차원 배열의 각 요소에 콜백 함수를 적용하고 콜백 함수의 결과가 포함된 새 배열을 반환하는 PHP의 array_map 함수를 사용할 수 있습니다.
다음은 다차원 배열을 2차원 배열로 변환하는 콜백 함수가 포함된 샘플 코드입니다.
$Flat_fruits = array();
array_map(function($group) use (&$Flat_fruits) {
foreach ($group as $item) { $flat_fruits[] = array( "category" => array_keys($group)[0], "brand" => $item["brand"], "color" => $item["color"], "price" => $item["price"] ); }
} , $fruits);
위 코드에서는 먼저 $plat_fruits라는 새 배열을 만들어 변환된 결과를 저장합니다. 그런 다음 array_map 함수를 사용하여 $fruits 배열의 각 항목을 반복하고 해당 항목에 대해 일부 작업을 수행하는 익명 함수에 전달합니다.
이 익명 함수에서는 먼저 foreach 루프를 사용하여 각 범주의 가능한 모든 항목을 반복합니다. 각 항목에 대해 새 배열로 포장하고 항목의 브랜드, 색상, 가격 및 카테고리를 저장합니다(여기에서는 카테고리 이름을 사용했습니다). 마지막으로 이 새 배열을 변환된 2D 배열이 되는 $Flat_fruits 배열에 추가합니다.
코드가 작동하는지 확인하려면 간단히 $plat_fruits 배열을 출력하고 변환된 값을 확인하면 됩니다. 다음은 $plat_fruits 배열을 출력하는 코드입니다.
foreach ($plat_fruits as $item) {
echo $item["category"] . " > " . $item["brand"] . " (" . $item["color"] . ", $" . $item["price"] . ")\n";
}
위 코드에서는 foreach 루프를 사용하여 $plat_fruits 배열의 각 항목을 반복합니다. 각 항목에 대해 해당 내용을 문자열로 형식화하고 터미널에 인쇄합니다.
출력은 다음과 유사해야 합니다.
사과 > Granny Smith(녹색, $0.75)
사과 > Fuji(빨간색, $0.5)
사과 > Golden Delicious(노란색, $0.6)
오렌지 > 오렌지, $0.8)
오렌지 > 네이블(오렌지, $0.85)
오렌지 > 블러드(레드, $0.1)
바나나 > 캐번디쉬(노란색, $0.25)
바나나 > 레드(녹색, $0.3) Dacca (red, $0.35)
위 내용은 PHP 다차원에서 2차원 배열로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!