Ce face preg_filter
preg_filter primește aceiași parametri ca preg_replace. Diferența apare la tablouri: elementele în care șablonul nu s-a potrivit sunt eliminate din rezultat, iar cheile se păstrează.
Pentru un singur text, returnează textul înlocuit sau null dacă nu a existat nicio potrivire.
Parametri
| Parametru | Descriere |
|---|---|
$pattern |
Expresia regulată (sau un tablou de expresii). |
$replacement |
Textul pus în loc. |
$subject |
Textul sau tabloul de texte. |
$limit |
Opțional. Numărul maxim de înlocuiri. |
$count |
Opțional. Variabilă în care se salvează numărul de înlocuiri. |
Ce returnează
Tabloul cu elementele modificate, textul modificat sau null.
Exemple
Exemplul 1: preg_replace comparat cu preg_filter
<?php
$coduri = ["a1", "b", "c22", "d"];
print_r(preg_replace('/\d+/', '#$0', $coduri));
print_r(preg_filter('/\d+/', '#$0', $coduri));
var_dump(preg_filter('/\d+/', '#$0', "fără cifre"));
Rezultat
Array
(
[0] => a#1
[1] => b
[2] => c#22
[3] => d
)
Array
(
[0] => a#1
[2] => c#22
)
NULL
Greșeli frecvente
- Folosești rezultatul ca text fără să verifici
null. Când nu există potrivire,preg_filternu returnează textul original.
Comenzi înrudite
preg_replace: Înlocuiește toate potrivirile unei expresii regulate cu alt text.preg_grep: Păstrează dintr-un tablou doar elementele care se potrivesc cu o expresie regulată.array_filter: Păstrează doar elementele dintr-un tablou care îndeplinesc o condiție.