php – 将数组转换为Ul-Li
发布时间:2020-12-13 17:45:04 所属栏目:PHP教程 来源:网络整理
导读:我有这样的阵列 Array( [0] = Array ( [name] = Region [id] = 3 [parent_id] = 2 [children] = Array ( [0] = Array ( [name] = Asia [id] = 4 [parent_id] = 3 [children] = Array ( [0] = Array ( [name] = Central Asia [id] = 6621 [parent_id] = 4 [ch
我有这样的阵列
Array ( [0] => Array ( [name] => Region [id] => 3 [parent_id] => 2 [children] => Array ( [0] => Array ( [name] => Asia [id] => 4 [parent_id] => 3 [children] => Array ( [0] => Array ( [name] => Central Asia [id] => 6621 [parent_id] => 4 [children] => Array ( [0] => Array ( [name] => Afghanistan [id] => 5 [parent_id] => 6621 [children] => Array ( [0] => Array ( [name] => Balkh [id] => 6 [parent_id] => 5 [children] => Array ( [0] => Array ( [name] => Mazar-e-Sharif [id] => 7 [parent_id] => 6 ) ) ) [1] => Array ( [name] => Kabol [id] => 10 [parent_id] => 5 ) [2] => Array ( [name] => Qandahar [id] => 12 [parent_id] => 5 ) ) ) ) ) [1] => Array ( [name] => Middle East [id] => 6625 [parent_id] => 4 [children] => Array ( [0] => Array ( [name] => Armenia [id] => 14 [parent_id] => 6625 ) ) ) ) ) ) ) ) 现在我想将这个数组转换为树形结构中的ul-li 但它给了我奇怪的输出 例如Region我想这样 <li id=3 parent_id=2 > Region </li> 这里我想使用id和parent_id作为属性 function olLiTree($tree) { echo '<ul>'; foreach($tree as $key => $item) { if (is_array($item)) { echo '<li>',$key; olLiTree($item); echo '</li>'; } else { echo '<li>',$item,'</li>'; } } echo '</ul>'; } 从上面的功能来看区域的输出是这样的 <ul> <li>0 <ul> <li>Region</li> <li>3</li> <li>2</li> <li>children <ul> 解决方法
也许这是你寻求的递归.
function olLiTree( $tree ) { echo '<ul>'; foreach ( $tree as $item ) { echo "<li id="$item[id]" parent_id="$item[parent_id]" > $item[name] </li>"; if ( isset( $item['children'] ) ) { olLiTree( $item['children'] ); } } echo '</ul>'; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |