PHPのarray_mergeの使い方: 複数の配列を1つに繋げる
41, 2020-09-09
目次
PHPのarray_mergeの使い方
PHPには複数の配列を1つに繋げる関数array_merge
があります。
この関数を使うと複数の配列を繋げて1つの配列にすることができます。
<?php $arr1 = [1, 2, 3]; $arr2 = [4, 5, 6]; $arr3 = array_merge($arr1, $arr2); echo implode(',', $arr3) . "\n"; ?>
出力結果。
1,2,3,4,5,6
array_mergeの構造
array_merge
は引数に複数の配列を取ります。
戻り値は配列です。
引数無しで呼ばれた場合は、空の配列を返します。
array_merge(配列1, 配列2, 配列n...)
array_merge
は内部で新しい配列を作成し、最初に渡された引数をその配列の後ろに、次の引数の配列をそのまた後ろに繋げていきます。
連想配列の場合はキーと値を追加し、同名のキーがある場合はその値を上書きします。
普通の配列をマージする
普通の配列をマージします。
<?php $arr1 = [1, 2, 3]; $arr2 = [4, 5, 6]; $arr3 = array_merge($arr1, $arr2); var_dump($arr3); ?>
出力結果。
array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
$arr1
の末尾に$arr2
が繋げられ、結果として$arr3
が作成されました。
連想配列をマージする
連想配列をマージします。
<?php $arr1 = ['cat' => 'nyan', 'dog' => 'wan']; $arr2 = ['bird' => 'kii', 'dog' => 'wanwan']; $arr3 = array_merge($arr1, $arr2); var_dump($arr3); ?>
出力結果。
array(3) { ["cat"]=> string(4) "nyan" ["dog"]=> string(6) "wanwan" ["bird"]=> string(3) "kii" }
キーdog
の値wan
がwanwan
に上書きされてます。
普通の配列と連想配列をマージする
普通の配列と連想配列をマージします。
<?php $arr1 = [1, 2, 3]; $arr2 = ['cat' => 'nyan', 'dog' => 'wan']; $arr3 = array_merge($arr1, $arr2); var_dump($arr3); ?>
出力結果。
array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["cat"]=> string(4) "nyan" ["dog"]=> string(3) "wan" }
3つ以上の配列のマージ
3つ以上の配列のマージです。
引数に配列を加えていくだけでマージできます。
<?php $arr1 = [1, 2]; $arr2 = [3, 4]; $arr3 = [5, 6]; $arr4 = array_merge($arr1, $arr2, $arr3); var_dump($arr4); ?>
出力結果。
array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
引数無しのマージ
array_merge
に引数を指定しない場合は空の配列が作成されます。
<?php $arr = array_merge(); var_dump($arr); ?>
出力結果。
array(0) { }
引数が不正の場合
array_merge
は引数が配列でない場合、警告を出力します。
<?php array_merge(1); array_merge('cat'); array_merge(null); ?>
出力結果。
PHP Warning: array_merge(): Expected parameter 1 to be an array, int given in sample.php on line 3 PHP Warning: array_merge(): Expected parameter 1 to be an array, string given in sample.php on line 4 PHP Warning: array_merge(): Expected parameter 1 to be an array, null given in sample.php on line 5
問題
Q1: array_merge
の戻り値として正しいものを答えよ
文字列
整数
配列
Q2: array_merge
の引数の仕様として正しいものを答えよ
引数は配列を1つだけ渡せる
引数は配列を2つだけ渡せる
引数は配列を無数に渡せる
Q3: array_merge
の引数に配列以外のものを渡したときの挙動を答えよ
エラーを出して異常終了する
警告を出力する
戻り値がnullになる
Q1: 3
Q2: 3
Q3: 2