Funkcja PHP preg_filter() wyszukuje ciągi znaków pasujące do wzorca reprezentowanego przez wyrażenie regularne i zastępuje je podaną wartością.
Funkcja ta działa prawie identycznie, jak funkcja preg_replace() i różni się od niej tylko jednym szczegółem: zwraca wyłącznie te elementy tablicy, w których coś zostało zmienione. Dla porównania, funkcja preg_replace() zwraca zmodyfikowane elementy, a także całą resztę tablicy.
Przykład z użyciem funkcji PHP preg_filter():
print_r(preg_filter('/o/', 'a', ['kot', 'koc', 'kit']));Wynik:
Array
(
[0] => kat
[1] => kac
)
W elemencie zawierającym łańcuch kit nic nie zostało zmienione, bo nie znaleziono litery o, więc element ten nie został dołączony do tablicy wynikowej.
Analogiczny przykład z użyciem funkcji preg_replace():
print_r(preg_replace('/o/', 'a', ['kot', 'koc', 'kit']));Wynik:
Array
(
[0] => kat
[1] => kac
[2] => kit
)
Podczas pracy na łańcuchach w sposobie działania funkcji preg_replace() i preg_filter() nie ma różnicy. Ujawnia się ona tylko wówczas, gdy przetwarzaniu poddawana jest tablica łańcuchów.
Szczegółowy opis parametrów znajduje się na stronie Funkcja PHP preg_replace().
