关于递归的应用,请各位指点一下 递归?汗一把,试过好几次写递归都失败了。不过把前一次结果带进来,估计是unset(变量)没设或位置没对吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能把问题说清楚一点吗????你现在从某个页面掏一个函数出来,id,又终极id??你说的表存储着什么? 字段如何??? 你都没有说清楚.让人看起来一头雾水 这就是一个无限级分类的应用,根据任何一个id,取得下面最终分类的id数组. 不知道是否楼主所想要的function get_child_idarr($id, $isFrist=false){ global $db_prefix,$sql; static $str=array(); if ($isFrist) empty($str); $a=array(); $rs=$sql->query("SELECT id,rou_id FROM ".$db_prefix."prot_class WHERE `p_id`='$id'"); if($sql->num_rows($rs) > 0) { while($r=$sql->fetch_assoc($rs)) { $p_id_num=explode(":",$r['rou_id']); if(count($p_id_num)==3 AND 1 > $sql->num_rows($sql->query("SELECT id FROM ".$db_prefix."prot_class WHERE `p_id`=$r[id]"))) { if(array_search($r['id'],$str)===null) { $str[]=$r['id']; } } get_child_idarr($r['id']); } }else { $str[]=$id; } $a=$str; unset($str); return $a;} 函数中有static $str=array();及unset($str);但是请注意:静态变量是不会被unset删除的,也就是说一旦声明了静态变量,那么他将一直存在直到程序结束你只需把unset($str);改成$str=array();就可以了 PHP如何获得raidio选中的value值? 求一条SQL语句或写法 救命救命~PHP的高手来救救我,配置服务器问题~~! 我是新人 高手指点我一下吧 同时会JAVA和PHP的请进... 远程调用mysql数据库是怎么调用的? 分不多。但问题能说明问题。。。。帮忙! 大家帮我看看这个递归函数有没有错误,谢谢了!!!!!!!!!!! linux gzip压缩页面和图片靠谱么 thinkphp配置文件的问题 我写的一个listdirtree类,请给点建议 现在遇到一个问题,高手请进来帮帮我把!!!!!
你现在从某个页面掏一个函数出来,id,又终极id??
你说的表存储着什么? 字段如何??? 你都没有说清楚.
让人看起来一头雾水
function get_child_idarr($id, $isFrist=false)
{
global $db_prefix,$sql;
static $str=array();
if ($isFrist) empty($str);
$a=array();
$rs=$sql->query("SELECT id,rou_id FROM ".$db_prefix."prot_class WHERE `p_id`='$id'");
if($sql->num_rows($rs) > 0)
{
while($r=$sql->fetch_assoc($rs))
{
$p_id_num=explode(":",$r['rou_id']);
if(count($p_id_num)==3 AND 1 > $sql->num_rows($sql->query("SELECT id FROM ".$db_prefix."prot_class WHERE `p_id`=$r[id]")))
{
if(array_search($r['id'],$str)===null)
{
$str[]=$r['id'];
}
}
get_child_idarr($r['id']);
}
}else
{
$str[]=$id;
}
$a=$str;
unset($str);
return $a;
}
static $str=array();
及
unset($str);但是请注意:静态变量是不会被unset删除的,也就是说一旦声明了静态变量,那么他将一直存在直到程序结束
你只需把
unset($str);
改成
$str=array();
就可以了