0

ネストされた配列について質問があります。私はGoogleとstackoverflowで検索しましたが、私のニーズに合った解決策を見つけることができませんでした:-/

次の配列があります。

Array
(
    [0] => Array
        (
            [name] => Europe
            [children] => Array
                (
                    [0] => West
                    [1] => East
                    [2] => South
                    [3] => North
                    [4] => Zimbabwe
                )
        )
    [1] => Array
        (
            [name] => West
            [children] => Array
                (
                    [0] => Germany
                    [1] => France
                    [2] => Switzerland
                    [3] => Netherlands
                    [4] => Belgium
                    [5] => Luxembourg
                    [6] => United Kingdom
                    [7] => Ireland
                )
        )
    [2] => Array
        (
            [name] => Germany
            [children] => 
        )
    [3] => Array
        (
            [name] => France
            [children] => 
        )
)

ネストされたものに変換したいと思います。つまり、次のことを意味します。

Array
(
    [0] => Array
        (
            [name] => Europe
            [children] => Array
                (
                    [0] => Array
            (
               [name] => West
               [children] => Array
                (
                  [0]=> Array
                  (
                    [name] => Germany
                  )
                  [1]=> Array
                  (
                    [name] => France
                  )
                )
            )
                    [2] => Array
            (
               [name] => East
               [children] => Array
                (
                  [0]=> Array
                  (
                    [name] => Poland
                  )
                  [1]=> Array
                  (
                    [name] => Austria
                  )
                )
            )
        )
        )
)

アイデアはありますか?

前もって感謝します!

4

1 に答える 1

0
foreach ($unnested_ary as $one_k => $one_v)
{
    foreach ($one_v as $two_k => $two_v)
    {
        if ($two_k == 'children')
        {
            foreach ($two_v as $three_k => $three_v)
            {
                $unnested_array[$one_k][$two_k][$three_k][] = array(array(
                    'name' => $three_v
                ));
            }
        }
    }
}

適切にネストしたかどうかはわかりませんが、アイデアを得て、このコードを試してみる必要があります。これは基本的にあなたが尋ねたように新しいキーと値を作成するはずです。

于 2013-02-19T15:14:22.330 に答える