【发布时间】:2012-04-23 19:50:27
【问题描述】:
我正在尝试将一组页面排列到一个数组中,并根据它们的父 ID 号放置它们。如果父 id 为 0,我希望将其作为数组放置在数组中......
$get_pages = 'DATABASE QUERY'
$sorted = array()
foreach($get_pages as $k => $obj) {
if(!$obj->parent_id) {
$sorted[$obj->parent_id] = array();
}
}
但是如果设置了父 ID,我想将它放入相关的数组中,再次像这样的数组......
$get_pages = 'DATABASE QUERY'
$sorted = array()
foreach($get_pages as $k => $obj) {
if(!$obj->parent_id) {
$sorted[$obj->id] = array();
} else if($obj->parent_id) {
$sorted[$obj->parent_id][$obj->id] = array();
}
}
这是我开始遇到问题的地方。如果我有第 3 个元素需要插入到数组的第 2 维,或者甚至第 4 元素需要插入第 3 维,我无法检查该数组键是否存在。所以我想不通的是如何检测数组键是否存在于第一个维度之后,如果它存在于它所在的位置,那么我可以放置新元素。
这是我的数据库表的示例
id page_name parent_id
1 Products 0
2 Chairs 1
3 Tables 1
4 Green Chairs 2
5 Large Green Chair 4
6 About Us 0
这是我想要获得的输出示例,如果有更好的方法可以做到这一点,我愿意提供建议。
Array([1]=>Array([2] => Array([4] => Array([5] => Array())), [3] => Array()), 6 => Array())
提前致谢!
【问题讨论】:
标签: php arrays multidimensional-array array-key-exists