preg_grep
funkcja
Filtruje tablicę, zwracając tylko te elementy, które pasują do wzorca wyrażenia regularnego. Zachowuje oryginalne klucze tablicy.
preg_grep(string $pattern, array $array, int $flags = 0): array|false
preg_grep to połączenie filtrowania tablicy z wyrażeniami regularnymi. Każdy element tablicy $array jest konwertowany do ciągu znaków i sprawdzany wzorcem $pattern — elementy pasujące trafiają do wyniku wraz z oryginalnymi kluczami. To ważne: indeksy z wejściowej tablicy są zachowane, co ułatwia późniejsze odwołanie się do kontekstu.
Flaga PREG_GREP_INVERT odwraca zachowanie — zwracane są elementy niepasujące do wzorca. Funkcja zwraca false tylko przy błędzie samego wzorca.
<?php
declare(strict_types=1);
$adresy = ['[email protected]', 'nie-email', '[email protected]', 'błędny'];
$poprawne = preg_grep('/@/', $adresy);
print_r($poprawne);
// wynik:
// Array
// (
// [0] => [email protected]
// [2] => [email protected]
// )