Ce face array_diff_ukey / array_intersect_ukey și variantele _uassoc
array_diff_ukey și array_intersect_ukey lucrează ca array_diff_key și array_intersect_key, dar cheile sunt comparate cu funcția ta. Funcția returnează 0 pentru chei egale, un număr negativ sau pozitiv altfel.
array_diff_uassoc și array_intersect_uassoc compară perechea cheie-valoare: valorile normal, iar cheile cu funcția ta.
Parametri
| Parametru | Descriere |
|---|---|
$array |
Tabloul de pornire. |
$rest |
Unul sau mai multe tablouri, apoi funcția de comparare a cheilor. |
Ce returnează
Un tablou cu elementele din primul tablou care rămân după comparare.
Exemple
Exemplul 1: Chei comparate fără majuscule
<?php
$formular = ["Nume" => "Ana", "Email" => "ana@exemplu.ro", "Tel" => "0742000000"];
$obligatorii = ["nume" => true, "tel" => true];
print_r(array_intersect_ukey($formular, $obligatorii, "strcasecmp"));
print_r(array_diff_ukey($formular, $obligatorii, "strcasecmp"));
Rezultat
Array
(
[Nume] => Ana
[Tel] => 0742000000
)
Array
(
[Email] => ana@exemplu.ro
)
Exemplul 2: Cheie și valoare, cu array_diff_uassoc
<?php
$a = ["a" => "x", "B" => "y"];
$b = ["A" => "x", "b" => "z"];
print_r(array_diff_uassoc($a, $b, "strcasecmp"));
print_r(array_intersect_uassoc($a, $b, "strcasecmp"));
Rezultat
Array
(
[B] => y
)
Array
(
[a] => x
)
Greșeli frecvente
- Pui funcția de comparare la început, ca la
array_map. Aici funcția este mereu ultimul parametru.
Comenzi înrudite
array_diff / array_diff_key / array_diff_assoc: Returnează elementele din primul tablou care nu apar în celelalte tablouri.array_intersect / array_intersect_key: Returnează elementele din primul tablou care apar și în toate celelalte tablouri.array_udiff / array_uintersect și variantele lor: Diferența și intersecția tablourilor, cu o funcție proprie care compară valorile.