出力結果。1,2,3,4,5,6array_mergeの構造array_mergeは引数に複数の配列を取ります。戻り値..." /> PHPのarray_mergeの使い方: 複数の配列を1つに繋げる

ユーニックス総合研究所

  • home
  • archives
  • php-array-merge

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の値wanwanwanに上書きされてます。

普通の配列と連想配列をマージする

普通の配列と連想配列をマージします。

<?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の戻り値として正しいものを答えよ

  1. 文字列
  2. 整数
  3. 配列

Q2: array_mergeの引数の仕様として正しいものを答えよ

  1. 引数は配列を1つだけ渡せる
  2. 引数は配列を2つだけ渡せる
  3. 引数は配列を無数に渡せる

Q3: array_mergeの引数に配列以外のものを渡したときの挙動を答えよ

  1. エラーを出して異常終了する
  2. 警告を出力する
  3. 戻り値がnullになる

Q1: 3
Q2: 3
Q3: 2