array_filter în PHP

Păstrează doar elementele dintr-un tablou care îndeplinesc o condiție.

Sintaxă
array_filter(array $tablou, ?callable $functie = null, int $mod = 0): array

Ce face array_filter

array_filter trece fiecare element prin funcția ta. Dacă funcția returnează true, elementul rămâne. Fără funcție, elimină valorile „goale” ("", 0, null, false).

Cheile originale se păstrează. Folosește array_values dacă vrei chei 0, 1, 2…

Parametri

Parametru Descriere
$tablou Tabloul filtrat.
$functie Opțional. Funcția care decide ce elemente rămân.
$mod Opțional. ARRAY_FILTER_USE_KEY sau ARRAY_FILTER_USE_BOTH pentru a primi și cheia.

Ce returnează

Un tablou nou, doar cu elementele păstrate.

Exemple

Exemplul 1: Doar numerele pare

<?php
$numere = [1, 2, 3, 4, 5, 6];

print_r(array_filter($numere, fn($n) => $n % 2 === 0));

Rezultat

Array
(
    [1] => 2
    [3] => 4
    [5] => 6
)

Exemplul 2: Eliminarea valorilor goale

<?php
$campuri = ["Ana", "", "Iași", null, "0742000000"];

print_r(array_values(array_filter($campuri)));

Rezultat

Array
(
    [0] => Ana
    [1] => Iași
    [2] => 0742000000
)

Greșeli frecvente

  • Te miri că după filtrare cheile sunt 1, 3, 5. array_filter păstrează cheile: adaugă array_values.

Comenzi înrudite

  • array_map: Aplică o funcție pe fiecare element al unui tablou și returnează tabloul cu rezultatele.
  • unset: Șterge o variabilă sau un element dintr-un tablou.
  • empty: Verifică dacă o variabilă lipsește sau are o valoare considerată „goală”.