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の値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



この記事のアンケートを送信する