はじめに
配列操作の基本ながら、試験でも実務でも混乱しやすいのが array_pop()
/ array_push()
と array_shift()
/ array_unshift()
の4つの関数です。
それぞれ「配列の末尾」か「配列の先頭」に対して「追加」または「取り出し」を行うのですが、操作対象が異なるため混同しがちです。この記事では、実行例と対応表を交えて整理し、理解を深めていきます。
目次
基本の説明
まずはマニュアルの定義です。
array_pop(array &$array): mixed
array_push(array &$array, mixed ...$values): int
array_shift(array &$array): mixed
array_unshift(array &$array, mixed ...$values): int
array_pop()
… 配列の末尾から要素を取り出す(削除する)array_push()
… 配列の末尾に要素を追加するarray_shift()
… 配列の先頭から要素を取り出す(削除する)array_unshift()
… 配列の先頭に要素を追加する
実行例コード
<?php
declare(strict_types=1);
error_reporting(-1);
$arr = [0];
var_dump($arr);
array_push($arr, 111);
var_dump($arr);
array_unshift($arr, 222);
var_dump($arr);
$v = array_pop($arr);
var_dump($v);
$v = array_shift($arr);
var_dump($v);
実行結果:
array(1) {
[0]=> int(0)
}
array(2) {
[0]=> int(0)
[1]=> int(111)
}
array(3) {
[0]=> int(222)
[1]=> int(0)
[2]=> int(111)
}
int(111)
int(222)
対応表で整理
関数名 | 操作対象 | 動作内容 | 戻り値(成功時) | 配列の変化例 (初期 [0] の場合) |
---|---|---|---|---|
array_push() | 末尾 | 要素を追加する | 新しい配列の要素数 (int) | [0] → [0, 111] |
array_pop() | 末尾 | 要素を取り出す | 取り出した要素 (mixed) | [0, 111] → [0] (返り値:111) |
array_unshift() | 先頭 | 要素を追加する | 新しい配列の要素数 (int) | [0] → [222, 0] |
array_shift() | 先頭 | 要素を取り出す | 取り出した要素 (mixed) | [222, 0] → [0] (返り値:222) |
図解イメージ
末尾を操作する関数
push
→[ ... , X ]
を追加pop
→[ ... , X ]
を取り出す
先頭を操作する関数
unshift
→[ X , ... ]
を追加shift
→[ X , ... ]
を取り出す
まとめ
push
/pop
→ 末尾で操作unshift
/shift
→ 先頭で操作
試験対策では「対応表」と「配列の変化」を押さえておけば混乱せずに済みます。