1

ツリー構造を表す多次元を生成する関数があります。返される内容の print_r は次のようになります。

Array (
    [A] => Array (
        [A1] =>
        [A2] =>
    )
    [B] => Array (
        [B1] => Array (
            [B1a] =>
        )
    )
)

私が必要とするのは、次のように、これを最初の順序で詳細に出力する再帰関数です。

A
  A1
  A2
B
  B1
    B1a

あるいは単に

A, A1, A2, B, B1, B1a

私はこれを何時間も解決しようとしましたので、助けてください。

4

3 に答える 3

1

配列を再帰的にスキャンする必要はありませprint_rん。既に実行されているからです。print_r呼び出して、出力を解析するだけです。

preg_match_all('/^[^\[]*\[([^\]]*)\][^\]]*$/m', print_r($arr, true), $matches);
$result = implode(', ', $matches[1]);

echo $result; // A, A1, A2, B, B1, B1a

デモ

于 2013-08-26T22:27:16.517 に答える
0

print_r 関数を真似てみることができることに気付いたので、ここで使用可能な関数を見つけました: php print_r 素敵なテーブル

于 2013-08-26T22:16:28.373 に答える