array_intersect_key
funkcja
Zwraca elementy pierwszej tablicy, których klucze występują we wszystkich pozostałych. Porównuje klucze, nie wartości.
array_intersect_key(array $array, array ...$arrays): array
array_intersect_key porównuje klucze i zwraca te elementy z $array, których klucze pojawiają się jednocześnie we wszystkich tablicach $arrays. Wartości są brane z $array — tablice pozostałe służą wyłącznie jako filtr kluczy. Oryginalne tablice nie są modyfikowane.
Świetnie sprawdza się do filtrowania tablicy do dozwolonego zestawu pól — np. przy walidacji danych wejściowych lub budowaniu odpowiedzi API z tylko wybranymi kolumnami.
<?php
declare(strict_types=1);
// Zostaw w danych użytkownika tylko dozwolone pola:
$dane = ['id' => 1, 'nazwa' => 'ola', 'wiek' => 25, 'email' => '[email protected]'];
$dozwolone = ['id' => true, 'nazwa' => true];
$wynik = array_intersect_key($dane, $dozwolone);
print_r($wynik);
// wynik:
// Array
// (
// [id] => 1
// [nazwa] => ola
// )