2
我试图安排一组页面到一个数组中,并根据它们的父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();
}
}
这是我开始有一个问题。如果我有第三个元素需要插入数组的第二个维度,或者甚至需要在第三个维度插入第四个元素,我无法检查该数组键是否存在。所以我想不出的是如何检测数组键是否存在于第一维之后,如果它确实存在,那么我可以放置新元素。
这里是我的数据库表
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())
谢谢先进!
谢谢!我会试一试。我怎样才能让它更有效率? – PapaSmurf 2012-04-23 11:05:50
像魅力一样工作,谢谢!尽管如此,我不得不将'!is_array'更改为'isset'。 – PapaSmurf 2012-04-23 11:42:22
是啊... isset是正确的,因为索引可能根本不存在... – Yaniro 2012-04-23 11:44:10