0

PHPで配列を再配置する際に問題があります。これは私が持っているものです...

Array
(
    [N] => Array
        (
            [68] => sssssss ttttttt
            [69] => uuuuuu vvvvvvvv
        )

    [D] => Array
        (
            [05] => zzzzzzzz zzzzzzzz
            [07] => tttttttttttt ttttttttttt
        )

    [P] => Array
        (
            [88] => yyyyyyy zzzzzzzz
        )

    [C] => Array
        (
            [04] => wwwwww wwwwwww
            [06] => iiiiiii iiiiiiii
            [41] => zzzzzzzzzz zzzzzzzzzz
        )

)

私が欲しいのは次の...

Array
(
    [N] => Array
        (
            [68] => sssssss ttttttt
            [69] => uuuuuu vvvvvvvv
            // only C are added here with N
            [04] => wwwwww wwwwwww
            [06] => iiiiiii iiiiiiii
            [41] => zzzzzzzzzz zzzzzzzzzz

        )

    [D] => Array
        (
            [05] => zzzzzzzz zzzzzzzz
            [07] => tttttttttttt ttttttttttt
        )

    [P] => Array
        (
            [88] => yyyyyyy zzzzzzzz
        )

    [C] => Array
        (
            [04] => wwwwww wwwwwww
            [06] => iiiiiii iiiiiiii
            [41] => zzzzzzzzzz zzzzzzzzzz
        )
)

C要素をNに追加する必要がありますが、C自体を含め、残りはすべてそのままです。

どうすればそれを達成できますか?

誰か助けてください...ありがとう

4

3 に答える 3

2

かなり簡単なことです。次のように、2 つの配列を一緒に追加するだけです。

// add C to N
$arr['N'] += $arr['C'];

キー名がわからず、最初と最後の項目だけをターゲットにしたい場合:

reset($arr); $first = key($arr);
end($arr); $last = key($arr);

$arr[$first] += $arr[$last];
于 2013-07-20T03:57:14.693 に答える
1

これは実際には非常に簡単です。最後の配列をループして、それらのキーと値のペアを最初の配列に追加するだけです。どうぞ:

    //---- $mainArray is your array.


foreach ($mainArray['C'] as $key => $value)
{
      $mainArray['N'][$key] = $value;
}

print_r($mainArray);
于 2013-07-20T03:53:09.487 に答える
0

これを試して:

$last_array = $main_array[count($main_array) - 1];
$new_array = array_merge($main_array[0], $last_array);
array_shift($main_array);
array_unshift($main_array, $new_array);
var_dump($main_array);
于 2013-07-20T02:22:06.680 に答える