需要使用PHP数组的树视图的HTML设计

时间:2018-02-15 09:26:23

标签: php html arrays multidimensional-array

我在PHP中使用了一个数据有限的数据和与之相关的静态HTML视图,它提供了树视图。

然而;我需要帮助来开发动态HTML代码以在树视图中查看相同的数据。

静态数组代码如下

<?php

echo '<pre>';

$array = array(59336 => array(
array('parent_id' => 40503, 'child_id' => array()),
array('parent_id' => 20098, 'child_id' => array(array('parent_id' => 43849, 'child_id' => array(array('parent_id' => 43850, 'child_id' => array()), array('parent_id' => 43851, 'child_id' => array()))), array('parent_id' => 81542, 'child_id' => array()))),
array('parent_id' => 20099, 'child_id' => array(array('parent_id' => 43850, 'child_id' => array(array('parent_id' => 43851, 'child_id' => array()))), array('parent_id' => 81543, 'child_id' => array()))))
);

print_r($array);
?>

静态HTML

<ul id="tree-data" style="display:none">
    <li id="root">
          59336
          <ul>
                <li>
                      40503
                </li>
                <li>
                      20098
                      <ul>
                            <li>
                                  43849
                                  <ul>
                                        <li>
                                              43850
                                        </li>
                                        <li>
                                              43851
                                        </li>
                                  </ul>
                            </li>
                            <li>
                                  81542
                            </li>
                      </ul>
                </li>
                <li>
                      20099
                      <ul>
                            <li>
                                  43850
                                  <ul>
                                        <li>
                                              43851
                                        </li>
                                  </ul>
                            </li>
                            <li>
                                  81543
                            </li>
                      </ul>
                </li>
          </ul>
    </li>
</ul>

需要动态HTML代码才能使用静态数组而不是静态HTML代码打印数据。请帮助我。

1 个答案:

答案 0 :(得分:1)

尝试使用以下功能,这有助于根据您的要求生成数组。

    <?php

    function nested2ul($data) {
        $result = array();

        if (sizeof($data) > 0) {
            $result[] = '<ul>';
            foreach ($data as $entry) {
                $result[] = sprintf(
                        '<li>%s %s</li>', $entry['parent_id'], nested2ul($entry['child_id'])
                );
            }
            $result[] = '</ul>';
        }

        return implode($result);
    }    
   ?>

html代码如下:

   <?php
     $html = '<ul id="tree-data" style="display:none"><li id="root">59336';
    $html .= nested2ul($array['59336']);
    $html .= '</li></ul>';
    echo $html;
    ?>