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 サイトの他の関連記事を参照してください。