+ -
当前位置:首页 → 问答吧 → [算法]只用两个循环输出DIV树,不能用递归

[算法]只用两个循环输出DIV树,不能用递归

时间:2008-09-19

来源:互联网

原数组:
复制PHP内容到剪贴板
PHP代码:




输出成下成格式,就是DIV树,父级的所有子级要用一个DIV包含,
程序只能用到两个循环,一个主循环一个辅助循环,不能用递归

作者: dm15   发布时间: 2008-09-19

不错的题目,PHPER我想很多会忽视算法的训练,来点这些题目很好=700) window.open('http://bbs.phpchina.com/images/smilies/default/victory.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

作者: jingjingboy   发布时间: 2008-09-19

有出题目就加精华,我出了3提都不加,斑竹什么意思啊

作者: gbbgbb   发布时间: 2008-09-19

DB->XML + XSLT ->HTML

含继承性的数据用数组处理本身就不合理, 对高级语言谈算法这听起来就好笑

作者: qiusibo   发布时间: 2008-09-19

算法题太复杂了

作者: double123   发布时间: 2008-09-19

作者: 6683637   发布时间: 2008-09-19

如果是下面这样的已排序数组,一个循环就够了

作者: junsan   发布时间: 2008-09-19

复制PHP内容到剪贴板
PHP代码:
$menu = array (
0 =>
array (
'study_id' => 98,
'study_name' => 'S1',
'parent_id' => 0,
'deep' => 0,
'blank' => NULL,
),
1 =>
array (
'study_id' => 102,
'study_name' => 't1',
'parent_id' => 98,
'deep' => 1,
'blank' => ' ',
),
2 =>
array (
'study_id' => 103,
'study_name' => 'tt1',
'parent_id' => 102,
'deep' => 2,
'blank' => ' ',
),
);
function getMenu($rootID) {
global $menu;
switch ($menu[$rootID]["deep"]) {
case 0: //root
echo "
";
break;
case 2: //leaf
echo "
";
break;
default:
echo "
";
break;
}
echo $menu[$rootID]["study_name"]."
\n";
echo "
";
foreach ($menu as $key => $value) {
if ($key == $rootID) continue;
if ($value["parent_id"] == $menu[$rootID]["study_id"]) {
getMenu($key);
}
}
echo "
\n";
}

getMenu(0);


我还是喜欢用递归解决这个问题。

作者: 杨过11   发布时间: 2008-09-19

是因为我用了两个循环所以要求两个循环

作者: fglive   发布时间: 2008-09-19