【发布时间】:2013-02-02 11:56:58
【问题描述】:
我有一个递归函数,我想用正确的语法再次调用它怎么做?我在数据库中有一个国家,它拥有 V: 并且它的格式为 Col1 CountryName; col1 如果它是一个城市它没有 V: 如果它是一个国家的一个区域它有 V: 所以这个递归必须是直到我们在数据库中获得一个国家的城市 Country= V:area1, V:area2.. .Area1=City1 或另一个 V:area 蚂蚁,所以直到我们得到城市名称..这是我到目前为止所做的事情,我已经接近了,但我不知道如何再次调用相同的函数
function recur($d,$rek,&$aeroPole1)
{
if(substr_count( $d, 'V:'))
{
$aeroPole=preg_replace('"V:"','',$d);
$aeroPole=explode(",",$aeroPole);
foreach($aeroPole as $ap)
{
$mysqliObj3 = new mysqli('localhost','usr','pass', 'trevo');
$comand6="SELECT * FROM `CC` WHERE name='".$ap."';"; // name='".$RuleD[0]."';";
$QueryObj6 = $mysqliObj3->query($comand6, MYSQLI_USE_RESULT);
$dArea=$QueryObj6->fetch_assoc();
$QueryObj6->close();
if($dArea!="")
{$rek+=1;
$aeroPole1=array_merge($aeroPole1,recur((string)$dArea["airport_codes"],$rek,$aeroPole1));
$fore++;
}
}//foreach
}
}
编辑:关闭括号
【问题讨论】:
-
我建议看一下 [link][sitepoint.com/hierarchical-data-database/] - 特别是该教程第 2 页上修改后的树遍历。国家->地区->城市->机场似乎很适合一棵树。无需递归!
-
您正在循环内打开一个新的数据库连接?这应该不是必需的,重复使用相同的数据库连接,整个脚本只需要一个