PHPのarray_mergeの使い方: 複数の配列を1つに繋げる
- 作成日: 2020-09-09
- 更新日: 2023-12-24
- カテゴリ: PHP
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