array_find / array_any / array_all în PHP

Tablouri (array) PHP 8.4+

Găsește primul element care îndeplinește o condiție. array_any și array_all verifică dacă unul sau toate o îndeplinesc.

Sintaxă
array_find(array $array, callable $callback): mixed

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_filter sau un foreach cu break.
  • Tabloul conține chiar valoarea null și nu știi dacă a fost găsită sau nu. Verifică cu array_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.