Ce face array_find / array_any / array_all
array_find returnează prima valoare pentru care funcția ta returnează true, sau null dacă nu găsește nimic. array_find_key returnează cheia acelui element.
array_any returnează true dacă cel puțin un element îndeplinește condiția, iar array_all dacă toate o îndeplinesc. Toate se opresc imediat ce știu răspunsul. Funcția primește valoarea și cheia.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Tabloul în care se caută. |
$callback |
Funcția fn($valoare, $cheie) care returnează true sau false. |
Ce returnează
Prima valoare găsită sau null. array_any și array_all returnează true sau false.
Exemple
Exemplul 1: Primul produs ieftin
<?php
$produse = [
["nume" => "Monitor", "pret" => 900],
["nume" => "Mouse", "pret" => 80],
["nume" => "Cablu", "pret" => 15],
];
$ieftin = array_find($produse, fn($p) => $p["pret"] < 100);
echo $ieftin["nume"] . "\n";
echo array_find_key($produse, fn($p) => $p["pret"] < 100);
Rezultat
Mouse
1
Exemplul 2: array_any și array_all
<?php
$note = [7, 9, 4, 10];
var_dump(array_any($note, fn($n) => $n < 5));
var_dump(array_all($note, fn($n) => $n >= 5));
Rezultat
bool(true)
bool(false)
Exemplul 3: Nimic găsit
<?php
var_dump(array_find(["Ana", "Mihai"], fn($nume) => str_starts_with($nume, "Z")));
Rezultat
NULL
Greșeli frecvente
- Folosești funcțiile pe un server cu PHP mai vechi de 8.4. Acolo nu există: folosește
array_filtersau unforeachcubreak. - Tabloul conține chiar valoarea
nullși nu știi dacă a fost găsită sau nu. Verifică cuarray_find_key.
Comenzi înrudite
array_filter: Păstrează doar elementele dintr-un tablou care îndeplinesc o condiție.array_search: Caută o valoare într-un tablou și returnează cheia la care a găsit-o.in_array: Verifică dacă o valoare se află într-un tablou.