0

私は次の配列を持っています

Array
(
    [0] => Homework2 (1).java
    [test2] => Array
    (
    )
    [1] => space-art-hd-473771.jpg
    [2] => Homework2.java
    [3] => factura_oct_2013.pdf
    [test] => Array
    (
        [0] => Homework2 (1).java
        [1] => space-art-hd-473771.jpg
        [2] => Homework2.java
    )
    [test3] => Array
    (
        [0] => Homework2 (1).java
        [testintest] => Array
        (
            [0] => Homework2 (1).java
            [1] => space-art-hd-473771.jpg
            [2] => Homework2.java
        )
        [1] => space-art-hd-473771.jpg
        [2] => Homework2.java
    )
)

HTMLのネストされたリストを表示しようとしています。したがって、配列の各子は、親 UL 内の新しい UL である必要があります。これを再帰的にしようとしましたが、すでに持っている多くの値しか取得できませんでした。

function map2ul($file_map,$html="") {
    var_dump($file_map);
    print "<br>";
    if ($html == "") $html = '<ul>';
    else $html .= '<ul>';
    foreach ($file_map as $df) :
        if (is_array($df)) :
            $html .= $this->map2ul($df,$html);
        else :
            $html .= '<li>';
            $html .= $df;
            $html .= '</li>';
        endif;
    endforeach;
    $html .= '</ul>';
    return $html;
}

これは私が試したものですが、 foreach ステートメントが必要以上に繰り返されているようです。

これを再帰する方法をよりよく理解できるように、誰かが私にエラーを指摘してもらえますか?

4

2 に答える 2