PHP では、開発者はさまざまなリソースから取得した多次元データ構造を扱う必要があることが多く、これらのデータ構造には非常に複雑なデータ型が含まれる場合があります。多次元配列は、これらのデータ構造を扱うときに非常に便利なツールですが、場合によっては、多次元配列を 2 次元配列に変換する必要がある場合があります。
この記事では、より一般的なデータ処理のニーズに合わせて、PHP を使用して多次元配列を 2 次元配列に変換する方法を検討します。
多次元配列を 2 次元配列に変換する方法を示すには、まず多次元配列を定義する必要があります。 3 つのメイン カテゴリを含む "Fruit" 配列を作成します。各カテゴリには 3 つの異なるエントリが含まれます。
$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) )
);
上記の配列では、3 つのカテゴリを含む果物の配列を作成します。各カテゴリには 3 つの異なるブランド、色が含まれます。そして価格の組み合わせ。
多次元配列を定義し、それがどのように構成されているかを理解したので、Convert するコードの記述を開始できます。それを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);
上記のコードでは、まず、変換された結果を保存するための $ flat_fruits という名前の新しい配列を作成します。次に、array_map 関数を使用して $fruits 配列の各エントリを反復処理し、そのエントリに対して何らかの操作を実行する匿名関数に渡します。
この匿名関数では、最初に foreach ループを使用して、各カテゴリ内のすべての可能な項目を反復処理します。アイテムごとに、それを新しい配列でラップし、アイテムのブランド、色、価格、カテゴリ (ここではカテゴリの名前だけを使用しています) を保存します。最後に、この新しい配列を $ flat_fruits 配列に追加します。これが変換された 2D 配列になります。
コードが機能することを確認するには、単に $ flat_fruits 配列を出力し、変換された値を確認します。以下は $ flat_fruits の配列を出力するコードです:
foreach ($ flat_fruits as $item) {
echo $item["category"] . " > " . $item["brand"] . " (" . $item["color"] . ", $" . $item["price"] . ")\n";
}
上記のコードでは、 $ flat_fruits 配列内の各項目を反復するための foreach ループ。項目ごとに、その内容を文字列にフォーマットし、端末に出力します。
出力は次のようになります:
apples > Granny Smith (green, $0.75)
apples > Fuji (red, $0.5)
apples > Golden Delicious (黄色、$0.6)
オレンジ > バレンシア (オレンジ、$0.8)
オレンジ > ネーブル (オレンジ、$0.85)
オレンジ > ブラッド (赤、$1.1)
バナナ > キャベンディッシュ (黄色、 $0.25)
バナナ > レディー フィンガー (緑、$0.3)
バナナ > レッド ダッカ (赤、$0.35)
ご覧のとおり、多次元配列を 2 次元配列に変換することに成功しました。 -次元配列 次元配列。結果はフォーマットされて出力されます。 PHP の array_map 関数は、多次元配列を処理するのに非常に便利なツールであることがわかります。これにより、開発者は多次元データ構造を簡単に操作し、変換ロジックを簡単に適用してデータを任意の形式に変換できます。
以上がPHP多次元から二次元配列への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。