Ce face array_intersect / array_intersect_key
array_intersect păstrează din primul tablou doar valorile care există în fiecare dintre celelalte tablouri. Cheile rezultatului sunt cele din primul tablou.
array_intersect_key face același lucru, dar după chei. Este metoda clasică de a păstra doar câmpurile permise dintr-un formular.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Tabloul de pornire. |
$arrays |
Tablourile cu care se compară. |
Ce returnează
Un tablou cu elementele comune.
Exemple
Exemplul 1: Interese comune
<?php
$ana = ["muzică", "drumeții", "PHP", "șah"];
$mihai = ["fotbal", "PHP", "șah"];
print_r(array_intersect($ana, $mihai));
Rezultat
Array
(
[2] => PHP
[3] => șah
)
Exemplul 2: Doar câmpurile permise, cu array_intersect_key
<?php
$_POST = ["nume" => "Ana", "email" => "ana@exemplu.ro", "este_admin" => "1"];
$permise = ["nume" => true, "email" => true];
print_r(array_intersect_key($_POST, $permise));
Rezultat
Array
(
[nume] => Ana
[email] => ana@exemplu.ro
)
Greșeli frecvente
- Te aștepți la chei renumerotate. Rezultatul păstrează cheile din primul tablou.
Comenzi înrudite
array_diff / array_diff_key / array_diff_assoc: Returnează elementele din primul tablou care nu apar în celelalte tablouri.in_array: Verifică dacă o valoare se află într-un tablou.array_filter: Păstrează doar elementele dintr-un tablou care îndeplinesc o condiție.