PHP の開発プロセスでは、複数のネストされた配列で構成され、大量のデータを節約できる多次元配列がよく使用されます。ただし、場合によっては、配列内のすべての値を結合する必要があるため、これを実現するために PHP が提供するいくつかの関数を使用する必要があります。
配列の結合が必要となる状況は 2 つあります。 1 つ目は、同じキーと値のペアをマージして、配列処理中にキーと値のペアの重複を防ぐことです。 2 番目のケースは、多次元配列内のすべての値をマージして、異なる配列内の値を 1 つの配列にマージできるようにすることです。
2 つの状況に応じた具体的な実装方法を次に示します。
最初のケース:
array_merge 関数を使用して、2 つの配列内のキーと値のペアをマージできます。ただし、キー値が重複している場合は、後者が前者を上書きします。このメソッドは、同じ次元の配列のみをマージできます。
サンプル コード:
$array1 = array('a' => 'apple', 'b' => 'banana'); $array2 = array('c' => 'cherry', 'b' => 'blueberry'); $result = array_merge($array1, $array2); print_r($result);
上記のコードの出力は次のとおりです:
Array ( [a] => apple [b] => blueberry [c] => cherry )
$ に 'b'=>'blueberry' キーがあるため、それがわかります。 array2 配列 値は $array1 配列の 'b'=>'banana' キー値と重複するため、最終出力の 'b' キー値の値は 'blueberry' になります。
2 番目のケース:
array_merge_recursive 関数を使用すると、同じキーと値のペアを上書きせずに、2 つ以上の多次元配列内のすべての値を 1 つの配列にマージできます。値と部分配列を再帰的に結合することです。
サンプル コード:
$array1 = array('red' => array('apple', 'strawberry'), 'green' => 'kiwi'); $array2 = array('blue' => array('blueberry', 'grape'), 'red' => 'cherry'); $result = array_merge_recursive($array1, $array2); print_r($result);
上記のコードの出力は次のとおりです:
Array ( [red] => Array ( [0] => apple [1] => strawberry [2] => cherry ) [green] => kiwi [blue] => Array ( [0] => blueberry [1] => grape ) )
ご覧のとおり、$array2 配列の 'red' キー値は$array1 配列はすでに存在するため、$array2 配列のキーと値のペア 'red'=>'cherry' が red のキーと値の配列に追加されます。
上記の 2 つの方法を使用すると、PHP 多次元配列のキーと値のペアと値を簡単にマージして、データをより効率的に処理できます。
以上がPHP多次元配列の値をマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。