ホームページ  >  記事  >  バックエンド開発  >  PHPの再帰、その対処方法

PHPの再帰、その対処方法

WBOY
WBOYオリジナル
2016-06-13 12:53:34720ブラウズ

PHP 再帰
には、次の構造のデータ テーブルがあります:
id classid zengclassid createdate

classid=$id で zengclassid を再帰的に見つける必要があります。また、zengclassid にも無料のコースがあるかどうかを判断する必要があり、このレコードも見つける必要があります。
例:
1 470 445 2010-01-01 11:11:11
2 470 448 2010-01-01 11:11:11
3 448 457 2010-01-01 11:11:11
4 445 490 2010-01-01 11:11:11

ID 470 の結果を探している場合は、445、448、457、490;
を調べる必要があります。
コードの再帰に問題があります。アドバイスをお願いします
function getVideo_zs($classid,$arr){
グローバル $dsql;
$sql = "コース WHERE から zengclassid を選択 classid=".$classid;
$dsql->Execute('mme',$sql);
while($rs=$dsql->getArray('mme')){
$arr[] = $rs['zengclassid'];
if(!empty($rs['zengclassid'])){
$arr = getVideo_zs($rs['zengclassid'],$arr); }
}
                                                 $ arrを返します。 }
$zs_list = array();
$zs_zrr = getVideo_zs(470,$zs_list);



-----解決策---------


$arr[] = $rs['zengclassid'];//累積結果 if(!empty($rs['zengclassid'])){
$arr = getVideo_zs($rs['zengclassid'],$arr);//再帰的に上書きするにはどうすればよいですか?

さらに、$dsql->Execute('mme',$sql); の後、リソースは $dsql にあります。 結果セットが上書きされないことを確認してください
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。