0

ある配列から元の配列の名前の下にネストされた別の配列に値を追加しようとしているこの問題があります。

たとえば、次のスクリプトは配列を返します。

<?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、すべてのファイルを読み取るために使用していますが、解決できない問題は、最初のスクリプトからすべての配列をループして変数にプッシュする方法です。

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()
);

私が考えることができる唯一の理由は、約4つのネストされたforeachesを使用するか、各配列セットのコードを複製することです

4

1 に答える 1

0

最初の配列が格納されていると仮定すると、$inputこれを使用できます。'example'予想される出力に基づいてハードコーディングしました。

foreach ($input as $protocol => $methods) {
    foreach ($methods as $method => $routeArray) {
        $routes[$protocol][$method]['example'] = $routeArray;
    }
}
于 2012-06-06T05:20:09.330 に答える