我一直在寻找解决办法,但并没有真正成功。我有一个无限深度的父子多维数组。它是从数据库生成的,但问题在于,使用我的方法将平面数组排列成多维数组时,项目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()函数的相关信息,但除此之外我不太清楚该怎么做。基本上,有没有一种方法可以在多维数组中重置数字键?
感谢您的帮助!