【发布时间】:2018-09-21 18:07:07
【问题描述】:
我有一个像这样的多级类别的经典数据库表(0 表示根):
ID - Name - Father
1 News 0
2 Articles 0
3 Politics 1
4 Politics 2
5 World 3
6 World 4
我有一个这样的路径:/News/Articles/Politics,并且我有一个数组中的上述表格数据。
我从路径上的/ 调用explode() 开始,我尝试了一些方法,但在所有情况下都不好。
这是我尝试过的:
$cat_path_ary = explode($cfg['categories_separator'], $cat_path);
if (count($cat_path_ary) > 1) {
$catname = array_pop($cat_path_ary);
$catparent = array_pop($cat_path_ary);
$cat_id = $this->getCatIDbyName($plugin, $catname, $catparent);
} else {
$catname = $cat_path_ary[0];
foreach($this->root_cats($plugin) as $categories) {
if($categories['name'] == $catname ) {
return $categories['cid'];
}
}
}
遍历路径值并确定最终值的ID 的最佳方法是什么?
来自/News/Articles/Politics 我希望返回5。
【问题讨论】:
-
所以基本上你想遍历树?
-
基本上如果我有 /News/Politics/World 我想要一个返回 id '5' 的函数
-
这个问题够清楚,也不算太宽泛。 OP 提供了一个编码尝试,它比该站点上的许多“给我代码”问题要好。我已投票决定保持开放并投了赞成票。这是一个受欢迎的问题,我们不要抑制发布这种质量的问题。
-
不幸的是,这里有更多的人对标记为重复和否定感兴趣而不是帮助,感谢您编辑我糟糕的英语。
标签: php loops search tree categories