12

これらの配列の方法はありますか

$array1 = array(
    '21-24' => array(
        '1' => array("...")
    )
);

$array2 = array(
    '21-24' => array(
        '7' => array("..."),
    )
);

$array3 = array(
    '25 and over' => array(
        '1' => array("...")
    )
);

$array4 = array(
    '25 and over' => array(
        '7' => array("...")
    )
);

以下の配列にマージされますか?

array(
    '21-24' => array(
        '1' => array("..."),
        '7' => array("...")
    ),      
    '25 and over' => array(
        '1' => array("..."),
        '7' => array("...")
    )
);

:

  • 配列構造を制御できないため、構造を変更する必要があるソリューションは探しているものではありません
  • 私は主に最初の 2 つのレベルのキーを保持することに関心がありますが、より堅牢なソリューションは、すべてのレベルを処理できるソリューションです。

このようにarray_merge_recursive()を使用してみました

$x = array_merge_recursive($array1, $array2);
$x = array_merge_recursive($x, $array3);
$x = array_merge_recursive($x, $array4);

しかし、それは

 array(
    '21-24' => array(
        '1' => array("..."),
        '2' => array("...")
    ),      
    '25 and over' => array(
        '1' => array("..."),
        '2' => array("...")
    )
);
4

1 に答える 1

38

検討しましたarray_replace_recursive()か?

print_r(array_replace_recursive($array1, $array2, $array3, $array4));
于 2013-05-28T13:20:33.663 に答える