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()関数で出力されました。
コメント