array_intersect_assoc în PHP

Tablouri (array) PHP 4.3+

Returnează elementele din primul tablou care au aceeași cheie și aceeași valoare în toate celelalte.

Sintaxă
array_intersect_assoc(array $array, array ...$arrays): array

Ce face array_intersect_assoc

array_intersect se uită doar la valori, iar array_intersect_key doar la chei. array_intersect_assoc păstrează un element doar dacă perechea cheie-valoare apare identic în fiecare tablou.

Valorile sunt comparate ca text, deci 1 și "1" sunt considerate egale.

Parametri

Parametru Descriere
$array Tabloul de pornire.
$arrays Tablourile cu care se compară.

Ce returnează

Un tablou cu elementele comune, cu cheile din primul tablou.

Exemple

Exemplul 1: Setările rămase neschimbate

<?php
$inainte = ["tema" => "light", "limba" => "ro", "pe_pagina" => 10];
$dupa = ["tema" => "dark", "limba" => "ro", "pe_pagina" => "10"];

print_r(array_intersect_assoc($inainte, $dupa));

Rezultat

Array
(
    [limba] => ro
    [pe_pagina] => 10
)

Exemplul 2: Aceeași valoare, altă cheie

<?php
$a = ["x" => "verde", "y" => "roșu"];
$b = ["x" => "verde", "z" => "roșu"];

print_r(array_intersect($a, $b));
print_r(array_intersect_assoc($a, $b));

Rezultat

Array
(
    [x] => verde
    [y] => roșu
)
Array
(
    [x] => verde
)

Greșeli frecvente

  • Te aștepți ca 10 și "10" să fie diferite. Comparația se face ca text. Pentru comparare strictă folosește array_uintersect_assoc cu o funcție proprie.

Comenzi înrudite