Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加到嵌套数组_Php_Arrays - Fatal编程技术网

Php 添加到嵌套数组

Php 添加到嵌套数组,php,arrays,Php,Arrays,我有一个问题,我试图将值从一个数组添加到嵌套在原始数组名称下的另一个数组 例如,此脚本返回一个数组: <?php return array ( 'HTTP' => array( 'GET' => array( '/' => function() { }, ), 'POST' => array( '/' => function($username, $password) {

我有一个问题,我试图将值从一个数组添加到嵌套在原始数组名称下的另一个数组

例如,此脚本返回一个数组:

<?php
return array (
'HTTP' => array(

    'GET' => array(

        '/' => function() {

        },

    ),

    'POST' => array(

        '/' => function($username, $password) {

        },

    )

),

'HTTPS' => array(

    'GET' => array(

        '/account/(:num)' => function($number) {

        }

    )
)
我正在做的是使用glob读取所有文件,但我无法解决的问题是如何循环通过第一个scrspt中的所有数组并将它们推送到var中

风险值为:

 private $routes = array(
    'HTTP' => array(
        'GET'  => array(
             'example' => array(
                 '/' => function() {

                  },
             )
        ),
        'POST' => array(
             'example' => array(
                 '/account/(:num)' => function($number) {

                  },
             )
        )
    ),
    'HTTPS' => array(
        'GET'  => array(
             'example' => array(
                 '/' => function() {

                  },
             )
        ),
        'POST' => array()
    ),
    'FILTRERS' =>
        'BEFORE' => array(),
        'AFTER' => array()
);

我能想到的唯一原因是使用大约四个嵌套的foreach,或者为每个数组集复制代码

假设第一个数组存储在$input中,您可以使用它。我已经根据您的预期输出硬编码了“示例”

foreach ($input as $protocol => $methods) {
    foreach ($methods as $method => $routeArray) {
        $routes[$protocol][$method]['example'] = $routeArray;
    }
}

使用递归函数我不确定如何使用递归函数,因为我不确定如何推入嵌套数组。因为array_push添加到主数组的末尾。“example”来自哪里?“过滤器”应该是没有额外R的“过滤器”吗?@David啊,我没看到,谢谢。
foreach ($input as $protocol => $methods) {
    foreach ($methods as $method => $routeArray) {
        $routes[$protocol][$method]['example'] = $routeArray;
    }
}