Php 将子数组添加到数组的每个项
我有一个名为Php 将子数组添加到数组的每个项,php,arrays,Php,Arrays,我有一个名为$list的父数组,当我var\u dump($list)时这是结果: array (size=10) 0 => array (size=4) 'id' => string '6' (length=1) 'title' => string 'Title #1' (length=7) 1 => array (size=4) 'id' => string '10' (length=2)
$list
的父数组,当我var\u dump($list)时代码>这是结果:
array (size=10)
0 =>
array (size=4)
'id' => string '6' (length=1)
'title' => string 'Title #1' (length=7)
1 =>
array (size=4)
'id' => string '10' (length=2)
'title' => string 'Title x' (length=7)
...
9 =>
array (size=4)
'id' => string '2' (length=1)
'title' => string 'Title y' (length=3)
如您所见,我有两个键'id'
和'title'
我想添加另一个多维数组作为第三个键,名为'children'
我可以使用名为GetChildrenById($id)的函数获取'children'
的数据代码>
但我不知道如何将此数组添加为第三个键,并将该键命名为“children”
*
我试图通过foreach循环到达每个孩子,但我需要一个大数组的结果
如何实现这一点?您可能需要:
foreach ($list as &$v) {
$v['children'] = GetChildrenById($v['id']);
}
$v
之前的&
表示$v
是对$list
项的引用,而不是副本。因此,当您对$v
应用更改时,$list
项将被修改
但您也可以像这样使用数组索引:
foreach ($list as $k => $v) {
$list[$k]['children'] = GetChildrenById($v['id']);
}
您可能需要:
foreach ($list as &$v) {
$v['children'] = GetChildrenById($v['id']);
}
$v
之前的&
表示$v
是对$list
项的引用,而不是副本。因此,当您对$v
应用更改时,$list
项将被修改
但您也可以像这样使用数组索引:
foreach ($list as $k => $v) {
$list[$k]['children'] = GetChildrenById($v['id']);
}
首先,你是如何得到结果的?使用foreach有什么问题?从数据库获取结果。foreach没有问题,但我不想重复结果。我仍然需要结果作为一个数组,这样我就可以使用json_encode():稍后等等..您首先是如何得到结果的?使用foreach有什么问题?从数据库获取结果。foreach没有问题,但我不想重复结果。我仍然需要结果作为一个数组,这样我就可以使用json_encode():稍后,等等..它按预期工作,感谢帮助和解释。它按预期工作,感谢帮助和解释。