Home >PHP >PHP manuál - funkce >array_intersect_assoc

array_intersect_assoc

array_intersect_assoc($pole, $dalsi, …)

Vrátí prvky prvního pole, ke kterým ve všech dalších polích existuje prvek se stejným klíčem a zároveň stejnou hodnotou.

Parametry

  • $pole – pole, ze kterého se vybírá.
  • $dalsi – pole, se kterým se porovnává. Polí může následovat libovolný počet.

Příklady

print_r(array_intersect_assoc(array("a" => 1, "b" => 2, "c" => 3), array("a" => 1, "b" => 5, "d" => 3))); // Array ( [a] => 1 )
// které údaje zůstaly stejné
$puvodni = array("jmeno" => "Jan", "mesto" => "Praha", "vek" => "30");
$nove = array("jmeno" => "Jan", "mesto" => "Brno", "vek" => "30");
print_r(array_intersect_assoc($nove, $puvodni)); // Array ( [jmeno] => Jan [vek] => 30 )
// vyhovuje záznam všem podmínkám filtru?
$filtr = array("mesto" => "Praha", "aktivni" => "1");
$zaznam = array("jmeno" => "Jan", "mesto" => "Praha", "aktivni" => "1");
var_dump(array_intersect_assoc($filtr, $zaznam) === $filtr); // bool(true)
// u obyčejných polí rozhoduje i pozice
echo implode(",", array_intersect_assoc(array("a", "b", "c"), array("a", "x", "c"))); // a,c
// hodnoty se porovnávají jako text: 1 a "1" jsou totéž
echo count(array_intersect_assoc(array("x" => 1), array("x" => "1"))); // 1

Na co si dát pozor

  • Musí souhlasit klíč i hodnota. Jen podle hodnot porovnává array_intersect(), jen podle klíčů array_intersect_key().
  • Hodnoty se porovnávají jako text, takže 30 a „30“ nebo null a prázdný text jsou totéž.
  • Pro vnořená pole se nehodí, porovnává jen první úroveň.
  • Opačnou otázku – co se liší – zodpoví array_diff_assoc().

Příbuzné funkce:
array_intersect()
array_intersect_key()
array_diff_assoc()