広告スペース(バナー)
🐘PHP レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 42 / 68

配列の平坦化(flatten)

このレッスンでは、配列の平坦化(flatten)を再帰関数で実装する方法を学び、入れ子構造のデータを扱えるようになることを目標にします。「PHP 配列 平坦化」で調べている方向けの内容です。

配列の中に入れ子になった配列があるとき、それを「平らな」1つの配列に展開することをflatten(平坦化)と呼びます。PHPには専用の関数がないため、再帰関数で実装します。

サンプルコードでは、flatten関数がis_array($item)で配列かどうかを判定し、配列であれば自分自身を再帰的に呼び出してarray_merge()で結果を結合し、そうでなければ$result[] = $item;で結果に追加しています。

初心者がよくつまずくのが、再帰関数には必ず「終わる条件」が必要だという点です。is_array()でリストかどうかを判定し、配列でなくなった時点で再帰が止まる、という仕組みを理解しておかないと、意図しない挙動につながることがあります。

入れ子構造のデータをまとめて1つのリストとして扱いたいときに役立つ、実務でも使われるテクニックです。多次元のツリー構造のデータを1つのリストにまとめたいときにも、同じ考え方が応用できます。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではPHPを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
広告スペース(バナー)
広告スペース(記事内)