【发布时间】:2011-10-22 21:19:15
【问题描述】:
我一直在寻找解决方案,但没有真正成功。我有一个多维的父母和孩子数组,没有深度限制。这是从数据库生成的,但问题是使用我将平面数组排列成多维数组的方式,项目 ID 成为键,如下所示:
Array(
[28] => Array
(
[id] => 28
[color] => #ff24e5
[name] => Personal
[parent_id] =>
[children] => Array
(
[23] => Array
(
[id] => 23
[color] => #41c3a3
[name] => Shopping
[parent_id] => 28
[children] => Array
(
[22] => Array
(
[id] => 22
[color] => #8be32b
[name] => Deals
[parent_id] => 23
[children] => Array
(
)
)
)
)
[150] => Array
(
[id] => 150
[color] => #e9a3f0
[name] => Orders
[parent_id] => 28
[children] => Array
(
)
)
)
)
)
我想要的是一个执行以下操作的函数:
Array (
[0] => Array
(
[id] => 28
[color] => #ff24e5
[name] => Personal
[parent_id] =>
[children] => Array
(
[0] => Array
(
[id] => 23
[color] => #41c3a3
[name] => Shopping
[parent_id] => 28
[children] => Array
(
[0] => Array
(
[id] => 22
[color] => #8be32b
[name] => Deals
[user_id] => 1
[selected] => 0
[parent_id] => 23
[children] => Array
(
)
)
)
)
[1] => Array
(
[id] => 150
[color] => #e9a3f0
[name] => Orders
[parent_id] => 28
[children] => Array
(
)
)
)
)
)
基本上从 0 开始重新分配键。我尝试了很多方法,但我假设我需要找到一个递归解决方案,当我尝试这样做时,它破坏了我的数组。我正在阅读 array_walk_recursive() 函数,但我不太清楚除此之外还能做什么。本质上,有没有办法重置多维数组中的数字键?
感谢您的帮助!
【问题讨论】:
-
在您提出问题后,我就回答了您的问题。 2小时后,你要回来吗?如果这回答了您的问题,请单击答案旁边的复选标记图标将其标记为已接受。