PHPのarray_pushの使い方をわかりやすく解説。配列に複数の値をプッシュする

42, 2020-09-10

目次

PHPのarray_pushの使い方

PHPには配列に値を追加する関数array_pushがあります。

array_pushに配列と値を渡すと、配列の末尾に値を追加できます。

<?php

$arr = [1, 2];

array_push($arr, 3, 4);  // <- $arrの末尾に3, 4が追加される

var_dump($arr);

?>

出力結果。

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
}

array_pushの構造

array_pushは↓のような構造を持っています。

array_push(配列, 値1, 値2, 値n...);

array_pushの第1引数に対象となる配列を渡します。array_pushはこの配列に対して処理を行います。
第2引数以降に配列に追加したい値を渡します。値は複数渡すことが出来ます。
array_pushは第1引数の配列の末尾に、第2引数以降の値を追加していきます。

第1引数が配列でなかった場合は、array_pushは警告を出力します。

戻り値は値を追加後の配列の要素数です。

配列に値を1つ追加する

配列に値を追加するには↓のようにarray_pushを使います。

<?php

$arr = [1, 2];

array_push($arr, 3);  // <- $arrの末尾に3が追加される

var_dump($arr);

?>

出力結果。

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

$arr[] = 値;を使った↓の書き方をしても同様の結果が得られます。

<?php

$arr = [1, 2];

$arr[] = 3;

var_dump($arr);

?>
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

配列に値を複数追加する

配列に複数の値を追加するにはarray_pushを↓のように使います。

<?php

$arr = [1, 2];

array_push($arr, 3, 4);  // <- 配列の末尾に3, 4が追加される

var_dump($arr);

?>

出力結果。

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
}

返り値で追加後の配列の要素数を得る

array_pushは返り値に値を追加後の配列の要素数を返します。

<?php

$arr = [1, 2];

$nelems = array_push($arr, 3, 4);  // 長さ2の配列に値を2つ追加

echo "$nelems\n";  // 長さは・・・

?>

出力結果。

4

第1引数が配列でない場合

array_pushは第1引数が配列でない場合に警告を出力します。

<?php

array_push(null);

?>

出力結果。

PHP Fatal error:  Only variables can be passed by reference in sample.php on line 3

連想配列に値を追加するには?

連想配列に値を追加したい場合は配列に[キー]でアクセスして値を追加します。

<?php

$arr = ['cat' => 'nyan', 'dog' => 'wan'];

$arr['bird'] = 'kii';

var_dump($arr);

?>

出力結果。

array(3) {
  ["cat"]=>
  string(4) "nyan"
  ["dog"]=>
  string(3) "wan"
  ["bird"]=>
  string(3) "kii"
}

使用例

array_pushの使用例です。

for文で配列に値を追加する

空の配列にfor文のカウント変数を追加していきます。

<?php

$arr = [];

for ($i = 0; $i < 4; $i++) {
    array_push($arr, $i);
}

var_dump($arr);

?>

出力結果。

array(4) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
}

出題

Q1: array_pushの第1引数として適当なものを答えよ

  1. 整数

  2. null

  3. 配列

Q2: array_pushの第1引数がnullの場合の挙動を答えよ

  1. エラーを出力して異常終了する

  2. 例外を送出する

  3. 警告を出力する

Q3: array_pushの返り値として適当なものを答えよ

  1. errno

  2. HTTPステータスコード

  3. 配列の要素数


Q1: 3
Q2: 3
Q3: 3



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