NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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í.

PHP - array_intersect_key

Třída

Kořen \ Bez třídy

Metoda - array_intersect_key

(PHP 5 >= 5.1.0, PHP 7)

Funkce vrátí asociativní pole, jehož klíče jsou průnikem klíčů zadaných polí. Hodnoty klíčů jsou převzaty z prvního zadaného pole. Tato funkce se používá např. zkopírování dat z $_POST.

Procedurální

Parametry

NázevDatový typVýchozí hodnotaPopis
$array1array

Pole, jehož klíče se mají zkontrolovat a jehož hodnoty budou obsaženy ve výsledném poli.

$array2array

Pole, oproti kterému se bude dělat průnik klíčů.

$...array

Lze zadat libovolný počet polí, vůči kterým se budou klíče z prvního pole porovnávat jejich průnikem. Klíče z prvního pole pak musí být obsaženy ve všech zadaných polích.

Návratové hodnoty

Vrací: array

Vyfiltrované pole, jehož klíče jsou obsaženy ve všech zadaných polích.

Příklady

Ukažme si, jak lze funkci využít pro 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);

Pomocí array_flip() prohodíme klíče a hodnoty pole, čímž dostaneme pole klíčů.

Pole v ukázce by se mohlo objevit např. 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, díky array_intersect_key se do dotazu se nedostane.

Související manuály

      • function array_diff_key (array $array1, array $array2, array $...) : array
      • function array_intersect (array $array1, array $array2, array $...) : array
      Aktivity