配列の先頭の要素を操作するarray_shiftとarray_unshiftを使う。

配列に対して先頭(インデックス = 0)に対して値を取り出したり追加する時、PHPではarray_shiftとarray_unshiftを使用する。

<?php
$a = [1, 2, 3, 4, 5];
$b = array_shift($a);
print_r($a); // Array([0] => 2 [1] => 3)
print_r($b); // 1

array_unshift($a, 4);
print_r($a); // Array([0] => 2 [1] => 3 [1] => 3)

array_shiftを実行すると、先頭の要素を取り出しそれが戻り値となる。
そこで、配列$aの先頭にあった「1」が取り出され$bに代入されている。
また、$aから1がなくなっていることもわかる。

次に、array_unshiftを使用して$aの先頭に4を追加し、以降の要素のインデックスが一つずつズレている。

非常にわかりやすく使い易いが、重要なのは配列の先頭に対して操作しているということ。
これを忘れてしまうことが多く、そのたびに混乱する。