関数の概要
PHPの array_shift 関数は、配列の先頭(最初)の要素を取り出し、その要素を返すとともに配列からもその要素を削除します。これにより、配列の要素が1つ減り、残りの要素はインデックスが1つずつ繰り上がります。キュー処理や先頭要素の取り出しが必要な際に便利な関数です。
パラメータの説明
array(必須): 処理対象の配列を参照渡しで指定します。配列は変更されます。
戻り値
取り出した配列の先頭要素を返します。配列が空の場合は NULL を返します。
使用例
基本的な使い方
<?php
$fruits = ['リンゴ', 'バナナ', 'オレンジ'];
$first = array_shift($fruits); // 'リンゴ' が取り出される
echo $first; // リンゴ
print_r($fruits);
// 出力: Array ( [0] => バナナ [1] => オレンジ )
?>
上記の例では、配列 $fruits の先頭要素「リンゴ」が取り出され、配列からは削除されています。残った配列は「バナナ」と「オレンジ」だけになります。
空の配列に対して使った場合
<?php
$empty = [];
$result = array_shift($empty);
var_dump($result); // NULL
?>
空の配列で array_shift を呼び出すと、戻り値は NULL になります。エラーは発生しません。
連想配列で使用した場合
<?php
$person = ['name' => '太郎', 'age' => 30, 'city' => '東京'];
$first = array_shift($person);
echo $first; // 太郎
print_r($person);
/* 出力:
Array
(
日付未入力 => 30
[city] => 東京
)
*/
?>
連想配列でも同様に先頭の値(この場合「太郎」)が取り出され、配列からは削除されます。キーは再番号付けされませんが、取り出した要素は削除されます。
関連する関数
array_pop– 配列の最後の要素を取り出し削除reset– 配列の内部ポインタを先頭にセットし、その要素を返す(削除はしない)array_unshift– 配列の先頭に1つ以上の要素を追加
まとめ
array_shift はPHPで配列の先頭要素を簡単に取り出すのに便利な関数です。取り出した要素は配列から削除されるため、キュー処理などで重宝します。空配列でも安全に使え、連想配列にも対応しています。配列から要素を取り出しながら配列を更新したい場面で使いこなしましょう。
