インデックス付き配列の場合、2番目の配列の配列を使用し、最初の配列を再帰的に上書きする必要があることを除いてarray_replace_recursive($array, $array1)
、元のメソッドと同じことを行うカスタムメソッドが必要です。array_replace_recursive($array, $array1)
例:
$a = array (
'a' => array(1,2,3),
'b' => array('a' => 1, 'b' => 2, 'c' => 3)
);
$b = array (
'a' => array(4),
'b' => array('d' => 1, 'e' => 2, 'f' => 3)
);
$c = array_replace_recursive($a, $b);
現在の動作:
$c = array (
'a' => array(4,2,3),
'b' => array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 1, 'e' => 2, 'f' => 3)
);
望ましい動作:
$c = array (
'a' => array(4),
'b' => array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 1, 'e' => 2, 'f' => 3)
);
ご覧のとおり、要素「a」はインデックス付き配列であるため、2 番目の配列の要素が最初の配列の要素を上書きしています。要素「b」は連想配列であるため、元の動作を維持します。