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);

0 komentarzy