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 notificareaOnly 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șiarray_unshiftrenumerotează 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.