array_column în PHP

Tablouri (array) PHP 5.5+

Extrage o singură coloană dintr-o listă de rânduri (de exemplu toate numele dintr-o listă de utilizatori).

Sintaxă
array_column(array $array, string|int|null $column_key, string|int|null $index_key = null): array

Ce face array_column

Rezultatele dintr-o bază de date vin de obicei ca tablou de rânduri. array_column ia dintr-un asemenea tablou doar valorile unei chei, de exemplu toate prețurile.

Cu al treilea parametru, valorile din altă coloană devin cheile rezultatului. Dacă dai null drept coloană, obții rândurile întregi, indexate după acea cheie.

Parametri

Parametru Descriere
$array Lista de rânduri (tablouri sau obiecte).
$column_key Cheia extrasă din fiecare rând sau null pentru rândul întreg.
$index_key Opțional. Cheia ale cărei valori devin cheile rezultatului.

Ce returnează

Un tablou cu valorile coloanei.

Exemple

Exemplul 1: Toate numele

<?php
$utilizatori = [
    ["id" => 7, "nume" => "Ana", "oras" => "Iași"],
    ["id" => 12, "nume" => "Mihai", "oras" => "Cluj"],
    ["id" => 31, "nume" => "Ioana", "oras" => "Iași"],
];

print_r(array_column($utilizatori, "nume"));

Rezultat

Array
(
    [0] => Ana
    [1] => Mihai
    [2] => Ioana
)

Exemplul 2: Valori indexate după id

<?php
$utilizatori = [
    ["id" => 7, "nume" => "Ana"],
    ["id" => 12, "nume" => "Mihai"],
];

$nume = array_column($utilizatori, "nume", "id");
print_r($nume);
echo $nume[12];

Rezultat

Array
(
    [7] => Ana
    [12] => Mihai
)
Mihai

Exemplul 3: Rânduri întregi, căutate rapid după id

<?php
$produse = [
    ["cod" => "P1", "nume" => "Mouse", "pret" => 80],
    ["cod" => "P2", "nume" => "Tastatură", "pret" => 150],
];

$dupaCod = array_column($produse, null, "cod");
echo $dupaCod["P2"]["nume"] . " costă " . $dupaCod["P2"]["pret"] . " lei";

Rezultat

Tastatură costă 150 lei

Greșeli frecvente

  • Scrii greșit numele cheii. array_column nu dă eroare, doar sare peste rândurile fără acea cheie, și primești un tablou gol.

Comenzi înrudite

  • array_map: Aplică o funcție pe fiecare element al unui tablou și returnează tabloul cu rezultatele.
  • array_combine: Construiește un tablou asociativ din două liste: una cu cheile și una cu valorile.
  • array_sum / array_product: Adună toate valorile unui tablou (array_sum) sau le înmulțește (array_product).