如何将元素插入嵌套的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
                                )

                        )

                )

        )

)