はじめに
配列操作の基本ながら、試験でも実務でも混乱しやすいのが 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): intarray_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→ 先頭で操作
試験対策では「対応表」と「配列の変化」を押さえておけば混乱せずに済みます。
