PHPのarray_merge_recursive()関数を使用し1つ以上の配列を1つの配列に再帰的に結合(マージ)する

PHPのarray_merge_recursive()関数を使用し1つ以上の配列を1つの配列に再帰的に結合(マージ)してみます。

array_merge_recursive()関数は、1つまたは複数の配列を1つの配列に再帰的に結合(マージ)します。再帰的とは、自分自身を呼び出す処理が書かれていること(定義の中に定義されるものが含まれている)。

array_merge()関数との違いは、2つ以上の配列の値が同じキーを持っている場合、array_merge_recursive()関数は、キーを上書きするのではなく、値を配列にします。

なお、array_merge_recursive()関数に配列を1つだけ割り当てた場合は、 array_merge()関数と全く同じ動作を行う。

■基本的な構文

array_merge_recursive(array1, array2, array3, ...)

array1は、 結合(マージ)する配列を指定します。

array2,array3も、結合(マージ)する配列を指定します。

■環境

・Windows10

・XAMPP 8.0.6

・PHP Version 8.0.6

■array_merge_recursive()関数を使用し1つ以上の配列を1つの配列に再帰的に結合(マージ)する

では、PHPのarray_merge_recursive()関数を使用し1つ以上の配列を1つの配列に再帰的に結合(マージ)するスクリプトを書いていきます。

■コード

<html lang="ja"> 
<head> 
<title>array_merge_recursive()関数を使用し1つ以上の配列を1つの配列に再帰的に結合(マージ)する</title>
</head>
<body>
<?php
$a = array("a"=>"apple","b"=>"banana","c"=>"strawberry");
$b = array("c"=>"grape","e"=>"lemon","f"=>"dragonfruit");
print_r(array_merge_recursive($a,$b));
?>
</body>
</html>

今回はaという変数を定義し、その中でarray()関数を使用し、キーと値のペアを格納します。これで配列が作成されます。

作成後、今度はbという変数を定義し、その中でarray()関数を使用し、キーと値のペアを格納し配列を作成します。この時、1つのキーを、a変数内の配列のキーと同じものにしておきます。

作成後、array_merge_recursive()関数を使用します。array_merge_recursive()関数の括弧内には、第1の引数,パラメーターとして、a変数を渡します。第2の引数,パラメーターとして、b変数を渡します。渡された情報を元に、a変数内の配列のキーで、b変数内の配列のキーと同じものが存在するので、そのキーとペアになっている値同士が、再帰的に結合(マージ)。さらに、a変数内の配列に、b変数内の配列が結合(マージ)された配列となって返されます。

返された配列をprint_r()関数で出力します。

■実行

では、このスクリプトを「combine_sequences_recursively_single_sequence.php」という名前で保存し、実行させてみます。

実行してみると、array_merge_recursive()関数を使用したことで、a変数内の配列のキーで、b変数内の配列のキーと同じものが存在しているので、キーとペアになっている値同士が、再帰的に結合(マージ)。さらに、a変数内の配列に、b変数内の配列が結合(マージ)された配列がprint_r()関数で出力されました。

コメント

タイトルとURLをコピーしました