array_shift / array_unshift în PHP

Scoate primul element dintr-un tablou (array_shift) sau adaugă elemente la început (array_unshift).

Sintaxă
array_shift(array &$array): mixed

Ce face array_shift / array_unshift

array_shift scoate primul element din tablou și îl returnează. Tabloul se scurtează cu un element, iar cheile numerice sunt renumerotate de la 0. Cheile text rămân neschimbate.

array_unshift face invers: pune una sau mai multe valori la începutul tabloului și returnează noul număr de elemente. Împreună cu array_push și array_pop poți folosi un tablou ca pe o coadă sau o stivă.

Parametri

Parametru Descriere
$array Tabloul modificat. Este schimbat direct, de aceea trebuie să fie o variabilă.

Ce returnează

Elementul scos sau null dacă tabloul este gol. array_unshift returnează noul număr de elemente.

Exemple

Exemplul 1: O coadă de comenzi

Prima comandă intrată este prima procesată. Observă că după array_shift cheile pornesc din nou de la 0.

<?php
$coada = ["comanda #101", "comanda #102", "comanda #103"];

$prima = array_shift($coada);
echo "Procesez: $prima\n";
print_r($coada);

Rezultat

Procesez: comanda #101
Array
(
    [0] => comanda #102
    [1] => comanda #103
)

Exemplul 2: Adăugare la început cu array_unshift

<?php
$meniu = ["Blog", "Contact"];

$total = array_unshift($meniu, "Acasă");
echo "Meniul are $total elemente\n";
print_r($meniu);

Rezultat

Meniul are 3 elemente
Array
(
    [0] => Acasă
    [1] => Blog
    [2] => Contact
)

Exemplul 3: Tablou gol

<?php
$gol = [];
var_dump(array_shift($gol));

Rezultat

NULL

Greșeli frecvente

  • Dai direct rezultatul unei funcții: array_shift(explode(",", $text)). Funcția modifică tabloul, deci așteaptă o variabilă, și primești notificarea Only variables should be passed by reference. Salvează întâi tabloul într-o variabilă.
  • Te aștepți ca cheile numerice să rămână neschimbate. array_shift și array_unshift renumerotează cheile numerice de la 0.

Comenzi înrudite

  • array_push: Adaugă unul sau mai multe elemente la sfârșitul unui tablou.
  • array_slice: Extrage o bucată dintr-un tablou, fără să modifice tabloul original.
  • array_key_first / array_key_last: Returnează prima (array_key_first) sau ultima cheie (array_key_last) dintr-un tablou.