php 动态 数组,PHP动态多维数组或对象

这篇博客探讨了如何使用PHP创建一个递归函数,该函数从数据库查询结果中构建一个多层导航数组。作者遇到的问题是递归过程中变量被覆盖,导致无法正确存储子层级。解决方案是动态创建嵌套数组,确保每个层级的导航项都能正确存储在对应父项下。
摘要由CSDN通过智能技术生成

我正在尝试创建一个递归函数(或方法),在数组变量或对象中存储子层导航 . 这是我有的:

class Navigation extends Database

{

function build($parent_id = 0)

{

$query = 'SELECT id, name, href, parent_id

FROM navigation

WHERE parent_id = '.$parent_id.'

ORDER BY name';

$results = $db->query($query);

while ($row = $results->fetch_object()) {

$nav[$row->id] = $row;

// echo $row;

$this->build($row->id);

}

return $nav;

}

}

如果你注释 echo $row 一切正常 . 所以我想要它在三层导航中做的是这样的:

Array

(

[1] => stdClass Object

(

[id] => 1

[name] => Home

[href] => home.php

[parent_id] => 0

)

[2] => stdClass Object

(

[id] => 2

[name] => Company

[href] => company.php

[parent_id] => 0

)

[4] => stdClass Object

(

[id] => 4

[name] => Company Vision

[href] => company_vision.php

[parent_id] => 2

)

[5] => stdClass Object

(

[id] => 5

[name] => Company Goals

[href] => company_goals.php

[parent_id] => 2

)

[3] => stdClass Object

(

[id] => 3

[name] => Products

[href] => products.php

[parent_id] => 0

)

[6] => stdClass Object

(

[id] => 6

[name] => Products Shoes

[href] => products_shoes.php

[parent_id] => 3

)

[7] => stdClass Object

(

[id] => 7

[name] => Nike

[href] => products_shoes_nike.php

[parent_id] => 6

)

)

就像一个例子,所以数组会动态地执行此操作:

$nav[$row->id] = $row; // Home

$nav[$row->id] = $row; // Company

$nav[2][$row->id] = $row; // Company Vision

$nav[2][$row->id] = $row; // Company Goals

$nav[$row->id] = $row; // Products

$nav[3][$row->id] = $row; // Products Shoes

$nav[3][6][$row->id] = $row; // Products Shoes Nike

提前致谢 .

问题:如何创建递归函数/方法并将递归信息存储在变量中而不是回显结果?

问题:(a)PHP每次递归调用时都会覆盖变量(b)解决方案是动态创建一个数组,但我不知道这是否可能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值