PHP 配列の最初の要素を削除する関数array_shift()

例

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

上記の例の出力結果は次のとおりです:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

array_shift() は array の最初の要素を除去し、その結果として返します。array の長さは 1 短くなり、他のすべての要素は 1 つ前に移動します。すべての数値キーは 0 から数え直され、文字列キーは変更されません。

例

<?php
$arr = array('a'=>1,'b'=>2,'c'=>'3');
array_shift($arr);
print_r($arr);

$arr2 = array('1'=>1,'2'=>2,'3'=>'3');
array_shift($arr2);
print_r($arr2);
?>

上記の例の出力結果は次のとおりです:

A
Array
(
    [b] => 2
    [c] => 3
)
Array
(
    [0] => 2
    [1] => 3
)

数値キーのインデックスを保持したい場合は、次の方法を使用できます:

例

<?php
$arr = array('1'=>1,'2'=>2,'3'=>'3');

function array_kshift(&$arr)
{
  list($k) = array_keys($arr);
  $r  = array($k=>$arr[$k]);
  unset($arr[$k]);
  return $r;
}
array_kshift($arr);
print_r($arr);
?>

上記の例の出力結果は次のとおりです:

Array
(
    [2] => 2
    [3] => 3
)