Jak filtrować tablicę jednowymiarową za pomocą wyrażeń regularnych?
adamper
Funkcja udostępniana do przeszukiwania tablic w PHP to array_search()
. Umożliwia ona wyszukiwanie elementu, który jest równy elementowi w tablicy i zwraca tylko pierwszy znaleziony wynik. Co jeśli chcemy wyszukać wynik dzięki wyrażeniom regularnym i pragniemy otrzymać wszystkie wyniki?
Gotowa funkcja
Funkcja, która filtruje tablicę za pomocą wyrażeń regularnych istnieje, i nazywa się: preg_grep()
.
$array = ['apple', 'captain', 'bar'];
$result = preg_grep('/ap/', $array);
Inne rozwiązania
Funkcja preg_grep()
oferuje jednak wyszukiwanie tylko po wartościach tablicy, nie ma wbudowanej funkcji do wyszukiwania kluczy. Dlatego do wyrażeń regularnych mozna skorzystać już z istniejącej biblioteki, np biblioteki T-Regx która oferuje funkcję preg_grep_keys()
.
$array = [
'apple' => 'jabłko',
'captain' => 'kapitan',
'bar' => 'bar'
];
$result = preg::grep_keys('/ap/', $array);