Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Java. Zároveň využij akce až 80 % zdarma při nákupu e-learningu. Více informací:

array_intersect_key - Český PHP manuál

Funkce vrátí pole, jehož klíče jsou průnikem klíčů dvou polí. Možná to zní trochu matematicky, ale funkce je velmi dobře použitelná např. pro bezpečné zkopírování dat z $_POST.

Parametry

V obou parametrech jsou očekávána pole, z jejichž klíčů se udělá průnik.

V prvním poli se ponechají jen ty klíče, které jsou přítomné i v poli druhém. Druhé pole tedy můžeme chápat jako vzorové. Hodnoty z 2. pole se do výsledku nikdy nedostanou.

Návratová hodnota

Pole s průnikem klíčů obou polí.

Příklad

Ukažme si, jak lze funkci využít pro bezpečné vyfiltrování pole, které nám odeslal uživatel (např. hodnoty v $_POST).

<?php
// $pole by bylo ve skutečnosti $_POST
$pole = array(
    'jmeno' => 'Jan',
    'prijmeni' => 'Novák',
    'hodnoceni' => 'Nejlepší programátor na světě'
);
$povolene = array('jmeno', 'prijmeni');
$pole = array_intersect_key($pole, array_flip($povolene));

print_r($pole);

Obsah $pole je tedy nyní pouze:

Array
(
    [jmeno] => Jan
    [prijmeni] => Novák
)

Pomocí array_flip si vytvoříme pole s klíči bez hodnot a těmito klíči profiltrujeme vstupní pole.

Kód výše by mohl být někde ve správě uživatelů, kde si uživatel chtěl změnit spolu se jménem a příjmením ještě jeho hodnocení. To jednoduše odeslal v $_POST třeba tak, že si přidal do formuláře pomocí Developer Tools další políčko. I kdyby takový sloupec v databázi opravdu existoval, do dotazu se nedostane.


 

Všechny články v sekci
Pole - Český PHP manuál
Článek pro vás napsal David Čápka
Avatar
David je zakladatelem ITnetwork a programování se profesionálně věnuje 13 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity