《PHP8上級試験対策》array_pop / array_push / array_shift / array_unshift の違いと対応表まとめ

  • URLをコピーしました!

はじめに

配列操作の基本ながら、試験でも実務でも混乱しやすいのが array_pop() / array_push()array_shift() / array_unshift() の4つの関数です。
それぞれ「配列の末尾」か「配列の先頭」に対して「追加」または「取り出し」を行うのですが、操作対象が異なるため混同しがちです。この記事では、実行例と対応表を交えて整理し、理解を深めていきます。

キーワード: array_pop / array_push / array_shift / array_unshift / 配列操作

目次

基本の説明

まずはマニュアルの定義です。

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 → 先頭で操作

試験対策では「対応表」と「配列の変化」を押さえておけば混乱せずに済みます。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次