我在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代码打印数据。请帮助我。
答案 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;
?>