添加到嵌套数组

时间:2012-06-06 04:46:52

标签: php arrays

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

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

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

    'GET' => array(

        '/' => function() {

        },

    ),

    'POST' => array(

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

        },

    )

),

'HTTPS' => array(

    'GET' => array(

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

        }

    )
)

然后我有一个变量为:

的类
private $routes = array(
    'HTTP' => array(
        'GET'  => array(),
        'POST' => array()
    ),
    'HTTPS' => array(
        'GET'  => array(),
        'POST' => array()
    ),
    'FILTRERS' =>
        'BEFORE' => array(),
        'AFTER' => array()
);

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

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 es,或复制每个数组的代码

1 个答案:

答案 0 :(得分:0)

假设第一个数组存储在$input中,您可以使用它。我根据您的预期输出进行了硬编码'example'

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