1

インデックス付き配列の場合、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」は連想配列であるため、元の動作を維持します。

4

2 に答える 2

0

このisAssoc()投稿の最初の回答の方法は、探しているものです:
PHP 配列が連想か順次かを確認する方法は?

そのメソッドは、配列がインデックスかどうかをチェックし、そうであれば true を返します。

于 2013-08-13T13:14:43.423 に答える