鉄則: C言語レベルで再帰処理させろ! PHP言語レベルで再帰させるのとC言語レベルで再帰させるのでは、処理速度に雲泥の差がある。 圧倒的にC言語レベルの方が高速。 よく使う関数・クラス 以下の関数やクラスを使えば、配列の要素を辿っていく再帰処理であっても、 葉ノードだけを (PHP言語レベルでは) 単一のループ で処理させることが可能。 array_walk_recursive() http://php.net/manual/ja/function.array-walk-recursive.php 最速。 RecursiveIteratorIterator http://www.php.net/manual/ja/recursiveiteratoriterator.construct.php array_walk_recursive()より速度的には僅かに劣るが、こちらにしか出来ないこと