Ce face array_first / array_last
array_first returnează valoarea primului element din tablou, iar array_last valoarea ultimului. „Primul” înseamnă primul în ordinea în care elementele stau în tablou, nu cel cu cheia cea mai mică.
Funcțiile merg la fel pentru liste ([0, 1, 2]) și pentru tablouri asociative (["ana" => 9]). Nu mută pointerul intern al tabloului, spre deosebire de reset() și end(), și nu cer o variabilă: le poți da direct rezultatul altei funcții.
Înainte de PHP 8.5 scriai $t[array_key_first($t)]. Acum un singur apel face același lucru.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Tabloul din care se citește valoarea. |
Ce returnează
Prima (sau ultima) valoare din tablou, ori null dacă tabloul este gol.
Exemple
Exemplul 1: Primul și ultimul client dintr-o listă
<?php
$clienti = [1042 => "Ana", 1043 => "Mihai", 1044 => "Ioana"];
echo array_first($clienti) . "\n";
echo array_last($clienti);
Rezultat
Ana
Ioana
Exemplul 2: Direct pe rezultatul altei funcții
Nu ai nevoie de o variabilă intermediară, ca la reset() sau end().
<?php
$note = ["Ana" => 9, "Mihai" => 7, "Ioana" => 10];
arsort($note);
echo "Cea mai mare notă: " . array_first($note) . "\n";
echo "Prima persoană cu nota peste 8: " . array_first(array_keys(array_filter($note, fn($n) => $n > 8)));
Rezultat
Cea mai mare notă: 10
Prima persoană cu nota peste 8: Ioana
Exemplul 3: Tablou gol
Pentru un tablou gol primești null. Dacă tabloul poate conține chiar valoarea null, verifică mai întâi cu empty() sau count().
<?php
var_dump(array_first([]));
var_dump(array_last([null]));
Rezultat
NULL
NULL
Greșeli frecvente
- Crezi că
array_firstreturnează elementul cu cheia 0 sau cu cheia cea mai mică. Returnează primul element în ordinea din tablou. - Folosești funcția pe un server cu PHP mai vechi de 8.5 și primești
Call to undefined function array_first(). Pe versiuni vechi scrie$t[array_key_first($t)]. - Tratezi
nullca „tablou gol”, deși tabloul poate avea chiar valoareanullpe prima poziție.
Comenzi înrudite
array_key_first / array_key_last: Returnează prima (array_key_first) sau ultima cheie (array_key_last) dintr-un tablou.array_find / array_any / array_all: Găsește primul element care îndeplinește o condiție. array_any și array_all verifică dacă unul sau toate o îndeplinesc.current / next / prev / reset / end / key: Citesc și mută pointerul intern al unui tablou: elementul curent, următorul, anteriorul, primul, ultimul.array_slice: Extrage o bucată dintr-un tablou, fără să modifice tabloul original.