ホームページ  >  記事  >  バックエンド開発  >  PHPで3次元配列を2次元配列に変換する方法

PHPで3次元配列を2次元配列に変換する方法

PHPz
PHPzオリジナル
2023-04-27 09:10:101872ブラウズ

PHP では、連想配列は通常、キーと値のペアで構成され、多次元にすることもできます。ただし、場合によっては、データの処理と表示を容易にするために、3 次元配列を 2 次元配列に変換する必要があります。この記事では、3次元配列を2次元配列に変換する方法を紹介します。

1. 3 次元配列を 2 次元配列に変換する必要があるのはなぜですか

場合によっては、データベースまたは他のデータ ソースから 3 次元配列を取得することがあります。ですが、実際にデータを処理するときは、2 次元配列を使用するだけで済みます。たとえば、中国のすべての省の都市と観光スポットの情報を含む 3 次元配列があり、この情報を Web ページに表示したい場合、この 3 次元配列を 2 次元配列に変換する必要があります。データの処理と表示を容易にするため。

2. 3 次元配列を 2 次元配列に変換する方法

3 次元配列を 2 次元配列に変換する方法は数多くありますが、この記事ではその方法を紹介します。 2 つの異なる方法。

1. foreach ループを使用する

foreach ループは配列を走査する非常に一般的な方法で、すべての配列要素は foreach ループを通じて取得できます。 3 次元配列の場合は、ネストされた foreach ループを使用して 2 次元配列に変換できます。コードは次のとおりです。

$sourceArray = array(
    array(
        array("a"=>1,"b"=>2),
        array("a"=>3,"b"=>4),
        array("a"=>5,"b"=>6)
    ),
    array(
        array("a"=>7,"b"=>8),
        array("a"=>9,"b"=>10),
        array("a"=>11,"b"=>12)
    ),
    array(
        array("a"=>13,"b"=>14),
        array("a"=>15,"b"=>16),
        array("a"=>17,"b"=>18)
    )
);

$targetArray = array();
foreach($sourceArray as $province){
    foreach($province as $city){
        $targetArray[] = array_values($city);
    }
}

上の例では、$sourceArray は 3 つの州を含む 3 次元配列であり、各州には複数の都市が含まれ、各都市には複数の観光スポットが含まれます。

最初に、空の配列 $targetArray をターゲット配列として使用します。州ごとに、最初の foreach ループを使用して各都市を横断します。都市ごとに、2 番目の foreach ループを使用して各アトラクションを横断し、それを $targetArray に追加します。各都市と観光スポットは連想配列であるため、array_values() 関数を使用して 2 次元配列に変換します。

最終的に、$targetArray は、すべての都市と観光スポットの情報を含む 2 次元配列になります。

2. array_map 関数を使用する

foreach ループを使用したくない場合は、array_map 関数を使用して 3 次元配列を 2 次元配列に変換できます。 。コードは次のとおりです。

function flattenArray($element){
    return array_values($element);
}

$sourceArray = array(
    array(
        array("a"=>1,"b"=>2),
        array("a"=>3,"b"=>4),
        array("a"=>5,"b"=>6)
    ),
    array(
        array("a"=>7,"b"=>8),
        array("a"=>9,"b"=>10),
        array("a"=>11,"b"=>12)
    ),
    array(
        array("a"=>13,"b"=>14),
        array("a"=>15,"b"=>16),
        array("a"=>17,"b"=>18)
    )
);

$targetArray = array();
foreach($sourceArray as $province){
    $targetArray = array_merge($targetArray,array_map("flattenArray",$province));
}

この例では、各要素を 2 次元配列に変換するために使用される flattenArray という関数を定義します。次に、array_map 関数を使用してこの関数を各都市に適用し、2D 配列に変換して $targetArray 配列に保存します。

最後に、$targetArray は、すべての都市と観光スポットの情報を含む 2 次元配列になります。

3. 概要

この記事では、3 次元配列を 2 次元配列に変換する 2 つの方法 (foreach ループと array_map 関数を使用する) を紹介します。これら 2 つのメソッドのコードは異なりますが、目的は同じです。大量のデータを処理する必要がある場合、これらの方法のいずれかを使用してこの問題を解決できます。

以上がPHPで3次元配列を2次元配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。