【问题标题】:with php recursion get the city from database使用php递归从数据库中获取城市
【发布时间】: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 页上修改后的树遍历。国家->地区->城市->机场似乎很适合一棵树。无需递归!
  • 您正在循环内打开一个新的数据库连接?这应该不是必需的,重复使用相同的数据库连接,整个脚本只需要一个

标签: php recursion


【解决方案1】:
     $aeroPole1=array_unique($aeroPole1);
    return $aeroPole1;

else
{
     $aeroPole1=explode(",",$d);


  return $aeroPole1;
}

其他情况如果没有 v:

【讨论】:

    【解决方案2】:

    你可以试试这个

    在 //foreach 结束后

    $aeroPole1=array_unique($aeroPole1);
        return $aeroPole1;
    

    唯一的是没有任何重复,然后你返回函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-09
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      相关资源
      最近更新 更多