array_diff_ukey / array_intersect_ukey și variantele _uassoc în PHP

Tablouri (array) PHP 5.1+ (array_diff_uassoc: PHP 5.0+)

Diferența și intersecția tablourilor, cu o funcție proprie care compară cheile.

Sintaxă
array_diff_ukey(array $array, ...$rest): array

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