我有一个数组,就像这样
Array ( [id] => 1 [did] => 1 [title] => first link [link] => link.com )
Array ( [did] => 1 [title] => second link [link] => link2.com )
Array ( [id] => 2 [did] => 2 [title] => forum 1 [link] => forum.php )
Array ( [did] => 2 [title] => forum 2 => viewtopic.php )
Array ( [did] => 2 [title] => register [link] => register.php )
我想提取它,就像这样
- first link
-- seconde link
- forum 1
-- forum 2
-- register
id,是main,并且确实是此数组中的父级。 无论如何? 我想要这个输出:
<ul>
<li><a href="link.com">first link</a>
<ul>
<li><a href="link2.com">seconde link</a></li>
</ul>
</li>
<li><a href="forum.php"> forum 1</a>
<ul>
<li><a href="viewtopic.php"> forum 2</a></li>
<li><a href="register.php"> register</a></li>
</ul>
</li>
</ul>
答案 0 :(得分:1)
结构不是很干净,但有时候数据不干净。这样的事情应该有效(尽管<?=
短标记可能会导致问题,如果没有在您的环境中设置)。我只使用冒号而不是大括号,因为我认为在这种混合代码中更容易阅读。
<ul>
<?php foreach ($arr as $item): ?>
<li><a href="<?=$item['link']?>"><?=$item['title']?></a>
<ul>
<?php
foreach ($arr as $item2):
if ((array_key_exists('did', $item2) && ($item2['did'] == $item['id'])):
?>
<li><a href="<?=$item2['link']?>"><?=$item2['title']?></a></li>
<?php
endif;
endforech;
?>
</ul>
</li>
<?php endforeach;?>
</ul>