求把php中的二重循环变为三重或更多~~~

[复制链接]
查看11 | 回复1 | 2011-4-17 00:59:14 | 显示全部楼层 |阅读模式
$randcode = mt_rand(10000,99999);
$safecode = substr(md5($cfg_cookie_encode.$randcode),0,24);
$typeOptions = '';
$row = $dsql->GetOne("Select * From `#@__admin` where id='$id'");
$typeids = explode(',', $row['typeid']);
$dsql->SetQuery("Select id,typename From `#@__arctype` where reid=0 And (ispart=0 Or ispart=1)");
$dsql->Execute('op');
while($nrow = $dsql->GetObject('op'))
{
$typeOptions .= "id}' class='btype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">{$nrow->typename}\r\n";
$dsql->SetQuery("Select id,typename From #@__arctype where reid={$nrow->id} And (ispart=0 Or ispart=1)");
$dsql->Execute('s');
while($nrow = $dsql->GetObject('s'))
{
$typeOptions .= "id}' class='stype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">—{$nrow->typename}\r\n";
}
}
现在是二重循环,实现查找一级type之中查找二级type,完整后继续一级循环,现在想扩充到三级,或者可以自动判断几级就更好了~~

回复

使用道具 举报

千问 | 2011-4-17 00:59:14 | 显示全部楼层
用递归吧,修改之后如下, 正确性自己去调试多级,且每一级都类似的话,一般会采用递归的方式去处理$randcode = mt_rand(10000,99999);$safecode = substr(md5($cfg_cookie_encode.$randcode),0,24);$typeOptions = '';$row = $dsql->GetOne("Select * From `#@__admin` where id='$id'");$typeids = explode(',', $row['typeid']);$typeOptions = get_child(0);function get_child($
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行