概要

配列を スタック (後入れ先出し) や キュー (先入れ先出し) として使う場面は多い。タスクをため込んで順に処理する、未読メッセージを古い順に取り出す、Undo 履歴に積んでいく、など。PHP にはこういう「両端への出し入れ」を 1 関数で済ませる 専用の操作関数 が揃っていて、自前でループや unset を書くより圧倒的にラクになる。

末尾の出し入れは array_push($arr, X) (追加) と array_pop($arr) (取り出し & 削除) のペア。前章で出てきた $arr[] = Xarray_push のシンタックスシュガーで、結果は同じだ。先頭の出し入れは array_shift($arr) (取り出し & 削除) と array_unshift($arr, X) (追加) のペア。これら 4 つを覚えるだけで、スタックもキューも組める。

性能上の落とし穴も知っておきたい。array_shiftarray_unshift先頭を動かす関係で、残りの全要素の添字を振り直す必要がある。つまり長さ N の配列で O(N) の処理になる。一方 array_poparray_push は末尾だけを動かすので O(1)。大量データを扱う時は、末尾操作で済ませられないか を最初に考えるクセをつけておくと、後で「なんか遅い」と困ったときの引き出しが増える。

学習目標

ドリル

no 内容
01 array_push で末尾追加した後の配列を print_r で表示
02 array_pop で末尾削除した後の配列を print_r で表示
03 array_shift で先頭削除した後の配列を print_r で表示

演習: ドリル 01 — array_push で末尾追加

問題

配列 [10, 20, 30] に対して array_push40 を追加し、print_r で中身を表示してください。

期待される出力:

Array
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
)

ヒント

演習: ドリル 02 — array_pop で末尾削除

問題

配列 [10, 20, 30, 40] に対して array_pop で末尾を削除し、削除後の中身を print_r で表示してください。

期待される出力:

Array
(
    [0] => 10
    [1] => 20
    [2] => 30
)

ヒント

演習: ドリル 03 — array_shift で先頭削除

問題

配列 [10, 20, 30, 40] に対して array_shift で先頭を削除し、削除後の中身を print_r で表示してください。 先頭を削除すると 添字が 0 から振り直される ことに注目してください。

期待される出力:

Array
(
    [0] => 20
    [1] => 30
    [2] => 40
)

ヒント

この章を AI に聞く

  1. 「ch08 — 配列の操作関数」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch08 — 配列の操作関数」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch08 — 配列の操作関数」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch08 — 配列の操作関数」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE