広告スペース(バナー)
🐘PHP レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 42 / 68
配列の平坦化(flatten)
このレッスンでは、配列の平坦化(flatten)を再帰関数で実装する方法を学び、入れ子構造のデータを扱えるようになることを目標にします。「PHP 配列 平坦化」で調べている方向けの内容です。
配列の中に入れ子になった配列があるとき、それを「平らな」1つの配列に展開することをflatten(平坦化)と呼びます。PHPには専用の関数がないため、再帰関数で実装します。
サンプルコードでは、flatten関数がis_array($item)で配列かどうかを判定し、配列であれば自分自身を再帰的に呼び出してarray_merge()で結果を結合し、そうでなければ$result[] = $item;で結果に追加しています。
初心者がよくつまずくのが、再帰関数には必ず「終わる条件」が必要だという点です。is_array()でリストかどうかを判定し、配列でなくなった時点で再帰が止まる、という仕組みを理解しておかないと、意図しない挙動につながることがあります。
入れ子構造のデータをまとめて1つのリストとして扱いたいときに役立つ、実務でも使われるテクニックです。多次元のツリー構造のデータを1つのリストにまとめたいときにも、同じ考え方が応用できます。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではPHPを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
広告スペース(バナー)
広告スペース(記事内)