array_shift

(PHP 4, PHP 5, PHP 7, PHP 8)

array_shiftDépile un élément au début d'un tableau

Description

function array_shift(array &$array): mixed

array_shift() extrait la première valeur du tableau array et la retourne, en raccourcissant array d'un élément, et en déplaçant tous les éléments vers le bas. Toutes les clés numériques seront modifiées pour commencer à zéro pendant que les clés littérales ne seront pas affectées.

Note:

Cette fonction remet le pointeur au début du tableau d'entrée (équivalent de reset()).

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur dépilée, ou null si le tableau est vide ou si la valeur d'entrée n'est pas un tableau.

Exemples

Exemple #1 Exemple avec array_shift()

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

L'exemple ci-dessus va afficher :

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

et orange a été placé dans $fruit.

Voir aussi

  • array_unshift() - Empile un ou plusieurs éléments au début d'un tableau
  • array_push() - Empile un ou plusieurs éléments à la fin d'un tableau
  • array_pop() - Dépile un élément de la fin d'un tableau

add a note

User Contributed Notes 29 notes

up
119
regs at voidship dot net
17 years ago
Using array_shift over larger array was fairly slow.  It sped up as the array shrank, most likely as it has to reindex a smaller data set.

For my purpose, I used array_reverse, then array_pop, which doesn't need to reindex the array and will preserve keys if you want it to (didn't matter in my case).  

Using direct index references, i.e., array_test[$i], was fast, but direct index referencing + unset for destructive operations was about the same speed as array_reverse and array_pop.  It also requires sequential numeric keys.
up
64
elad dot yosifon at gmail dot com
13 years ago
Notice:
the complexity of array_pop() is O(1). 
the complexity of array_shift() is O(n).
array_shift() requires a re-index process on the array, so it has to run over all the elements and index them.
up
23
nospam at dyce dot losethisbit dot com
18 years ago
Just a useful version which returns a simple array with the first key and value. Porbably a better way of doing it, but it works for me ;-)

<?php

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