如何将元素插入嵌套的PHP关联数组?
我已经读了很多关于这个问题的答案,但我不知道如何让它们解决我的问题 这就是我所拥有的:如何将元素插入嵌套的PHP关联数组?,php,arrays,Php,Arrays,我已经读了很多关于这个问题的答案,但我不知道如何让它们解决我的问题 这就是我所拥有的: { "name": "My Company LLC ->", "children": [ { "name": "District of the Stores", "children": [ { "name": "johnny1"
{
"name": "My Company LLC ->",
"children": [
{
"name": "District of the Stores",
"children": [
{
"name": "johnny1"
},
{
"name": "jonny2"
}
]
}, //I don't want my array to end here
{
"name": "store number 10",
"children": [
{
"name": "johnny3"
},
{
"name": "jonny4"
}
]
}
]
}
这就是我想要的
{
"name": "My Company LLC ->",
"children": [
{
"name": "District of the Stores",
"children": [
{
"name": "johnny1"
},
{
"name": "jonny2"
},
{
"name": "store number 10",
"children": [
{
"name": "johnny3"
},
{
"name": "jonny4"
}
]
}
]
}
]
}
以下是我尝试使用的:
$name=array('name'=>'My Company LLC ->');
$name['children']=array(array('name'=>'District of the Stores', 'children'=>array(array('name'=>'johnny1'), array('name'=>'jonny2'))));
$name['children'][]=array('name'=>'store number 10', 'children'=>array(array('name'=>'johnny3'), array('name'=>'jonny4')));
echo '<pre>';
echo json_encode($name, JSON_PRETTY_PRINT | JSON_NUMERIC_CHECK);
echo '</pre>';
$name=array('name'=>'My Company LLC->');
$name['children']=array(array('name'=>'District of the Stores','children'=>array(array('name'=>'jonny1')、array('name'=>'jonny2'));
$name['children'][]=array('name'=>'storenumber 10','children'=>array(array('name'=>'jonny3')、array('name'=>'jonny4'));
回声';
echo json_encode($name,json_PRETTY_PRINT | json_NUMERIC_CHECK);
回声';
我知道我在子数组的末尾插入了一个数组,这导致了第一个示例中的第二个数组出现问题,但我不知道如何将第二个子数组放回原始数组中的第一个。这是数据库中一个大列表的一部分,但我被困在这里了。我看不到我找到的SO答案在哪里帮助我插入第二个数组。看起来您需要这样:
$name=array('name'=>'My Company LLC ->');
$name['children']=array(array('name'=>'District of the Stores', 'children'=>array(array('name'=>'johnny1'), array('name'=>'jonny2'), array('name'=>'store number 10', 'children'=>array(array('name'=>'johnny3'), array('name'=>'johnny4'))))));
echo '<pre>';
echo json_encode($name, JSON_PRETTY_PRINT | JSON_NUMERIC_CHECK);
echo '</pre>';
这将引用根元素的第一个子元素(索引0
),然后像以前一样继续添加到该元素子元素
数组中
{
"name": "My Company LLC ->",
"children": [
{
"name": "District of the Stores",
"children": [
{
"name": "johnny1"
},
{
"name": "jonny2"
},
{
"name": "store number 10",
"children": [
{
"name": "johnny3"
},
{
"name": "johnny4"
}
]
}
]
}
]
}
如果要使代码行保持独立,可以执行以下操作:
Array
(
[name] => My Company LLC ->
[children] => Array
(
[0] => Array
(
[name] => District of the Stores
[children] => Array
(
[0] => Array
(
[name] => johnny1
)
[1] => Array
(
[name] => jonny2
)
)
)
[1] => Array
(
[name] => store number 10
[children] => Array
(
[0] => Array
(
[name] => johnny3
)
[1] => Array
(
[name] => jonny4
)
)
)
)
)
$name['children'][]=数组(…)
。您将“门店编号10”
放错了位置。您可能需要$name['children'][0]['children'][]=array(…)
。我认为,如果您打印出数组本身,而不是将其编码为json,那么可视化和调试这类事情会容易得多。像这样:回声';打印(姓名);回声';谢谢我想我在未来会看到递归。@johnny:看起来确实是这样,因为你似乎正在处理一个树结构。
$name=array('name'=>'My Company LLC ->');
$name['children']=array(array('name'=>'District of the Stores', 'children'=>array(array('name'=>'johnny1'), array('name'=>'jonny2'))));
$name['children'][0]['children'][] = array('name'=>'store number 10', 'children'=>array(array('name'=>'johnny3'), array('name'=>'johnny4')));
echo '<pre>';
echo json_encode($name, JSON_PRETTY_PRINT | JSON_NUMERIC_CHECK);
echo '</pre>';
$name=array('name'=>'My Company LLC ->');
$name['children']=array(array('name'=>'District of the Stores', 'children'=>array(array('name'=>'johnny1'), array('name'=>'jonny2'))));
$name['children'][]=array('name'=>'store number 10', 'children'=>array(array('name'=>'johnny3'), array('name'=>'jonny4')));
echo '<pre>';
print_r($name);
echo '</pre>';
Array
(
[name] => My Company LLC ->
[children] => Array
(
[0] => Array
(
[name] => District of the Stores
[children] => Array
(
[0] => Array
(
[name] => johnny1
)
[1] => Array
(
[name] => jonny2
)
)
)
[1] => Array
(
[name] => store number 10
[children] => Array
(
[0] => Array
(
[name] => johnny3
)
[1] => Array
(
[name] => jonny4
)
)
)
)
)