2

私のギャラリー フォルダの構造は次のとおりです。

/年/月/日/ファイル

次に、私のウェブサイトでそれらを印刷します。この構造体を使用して、すべてのファイルを大きな配列で取得する関数があります。

Array
(
    [2017] => Array
        (
            [01] => Array
                (
                    [01] => Array
                        (
                            [0] => yo.jpg
                        )

                )

        )

    [2016] => Array
        (
            [02] => Array
                (
                    [01] => Array
                        (
                            [0] => yo.jpg
                        )

                )

            [01] => Array
                (
                    [03] => Array
                        (
                            [0] => timed-photos10.jpg
                        )

                    [01] => Array
                        (
                            [0] => yo.jpg
                        )

                )

        )

)

次に、この画像を印刷するための新しい関数を作成しました。すべての配列キーを読み取るパスを取得する必要があります。

これが私の機能です:

// ...
array_walk($mediaList, array($this, 'generateMedia'));      

public function generateMedia(&$value, $key)
{
    if(is_array($value))
    {
        echo $key . "/";
        array_walk($value, array($this, 'generateMedia'));
    }
    else
    {
        echo $value . "<br>";
    }
}

問題は、配列に複数の配列がある場合に発生します。

私が持っている結果は次のとおりです。

2017/01/01/yo.jpg
2016/02/01/yo.jpg
01/03/timed-photos10.jpg
01/yo.jpg

ご覧のとおり、1 番目と 2 番目のレコードは問題ありませんが、3 番目と 4 番目のレコードは正しくありません。これらの要素には複数の配列があるからです。

いろいろ試しているのですが解決できません。

私に何ができる?

ありがとうございました!

4

1 に答える 1