首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多维数组的php中的递归循环

使用多维数组的php中的递归循环
EN

Stack Overflow用户
提问于 2012-07-28 22:13:42
回答 1查看 153关注 0票数 0

我有一个这样的DB结构。

代码语言:javascript
复制
stopid  | parentid
2       |        1
3       |        1
5       |        2
9       |        2
8       |        2
11      |        3
11      |        9

我想搜索起跑站和终点站。这是排序或编程搜索的东西。我的第一站是家长id。最后一站作为stopid。由于我必须搜索从1到11的第一个停止,所以我将逻辑放在从最后一个停止11开始,然后递归循环。他们的逻辑是什么。我试过了,但没有成功。它不需要结束所有的根。我只想要任何兼容的第一个根。就像..。

1个-> 3 ->11或1个-> 2 -> 9->11...

代码语言:javascript
复制
extract($_POST);
echo "From :$from to $to".'<br/>';
$sql="select parentid, stopid from routes WHERE stopid = '".$to."' ";
echo $sql.'<br/>';
$result = mysql_query($sql) or die(mysql_error());
$count = mysql_num_rows($result) or die( mysql_error());
$stopid = array(); 
while( $row = mysql_fetch_array($result)) {
    $stopid[$row['stopid']][] = $row['parentid'];
}
echo '<pre>';

$countarray = count($stopid); 
while($countarray >= 1){
    foreach($stopid as $finalstop_value){
        foreach($finalstop_value as $finalstop_ky => $finalstop_vl){
            $query = "SELECT * FROM routes WHERE stopid = '".$finalstop_vl."'";
            $sql = mysql_query($query) or die(mysql_error());
            echo $query. ' Gives '.mysql_num_rows($sql).' rows...<br/>';
            while( $row = mysql_fetch_array($sql))  { 
                $new_stopid[$finalstop_vl][$row['stopid']][] = $row['parentid']; 
            }
            echo '<pre>';
            print_r($new_stopid);
                            // $stopid[$finalstop_vl][] = $new_stopid;
            $countarray--; 
        }
    }

}       
print_r($stopid);
exit;
EN

回答 1

Stack Overflow用户

发布于 2012-07-28 22:22:26

据我所知,您有一个n元树结构,您需要扫描以搜索连接大约2个节点的路径。嗯,这是一个经典的算法问题,有许多解决方案正等着你;-)

如果树中没有您在文章中没有提到的特定属性,我建议您实现一个Breadth-first search

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11701752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档