PHP Iterator 100 本ノック RecursiveIteratorIterator + RecursiveDirectoryIterator
これを使えば指定したディレクトリ以下のファイルを再帰的にすべて取得してフラットに操作できる
code:php
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirPath));
これだけ.
こうすると1回の foreach ですべてのファイルが取得できる.
SKIP_DOTS とか KEY_AS_FILENAME とか,いろんなフラグがあってインスタンス作るときに渡せたりする.