Funzione preg_filter

La funzione preg_filter esegue ricerca e sostituzione in una stringa o in un array di stringhe utilizzando un'espressione regolare. A differenza di preg_replace, restituisce solo gli elementi in cui è stata trovata una corrispondenza. Il primo parametro accetta l'espressione regolare, il secondo - la stringa di sostituzione, il terzo - la stringa o l'array da elaborare. Il quarto parametro opzionale permette di specificare il numero massimo di sostituzioni per ogni elemento (di default -1, che significa "senza limiti"). Il quinto parametro opzionale indica la variabile in cui verrà memorizzato il numero di sostituzioni eseguite.

Sintassi

phppreg_filter(pattern, replacement, subject, [limit = -1], [count]);

Esempio

Sostituiamo tutte le cifre nella stringa con il simbolo 'X':

php<?php
  $res = preg_filter('/\d/', 'X', 'a1b2c3');
  var_dump($res);
?>

Risultato dell'esecuzione del codice:

php'aXbXcX'

Esempio

Elaboriamo un array di stringhe, sostituendo le cifre con '#':

php<?php
  $res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
  var_dump($res);
?>

Risultato dell'esecuzione del codice:

php['a#', 'b#', 'd#']

Esempio

Dimostriamo la differenza rispetto a preg_replace:

php<?php
  $input = ['a1', 'b2', 'c', 'd4'];
  $res_filter = preg_filter('/\d/', '#', $input);
  $res_replace = preg_replace('/\d/', '#', $input);
  echo "Risultato Filter: ";
  var_dump($res_filter);
  echo "Risultato Replace: ";
  var_dump($res_replace);
?>

Risultato dell'esecuzione del codice:

phpRisultato Filter: ['a#', 'b#', 'd#']
Risultato Replace: ['a#', 'b#', 'c', 'd#']

Vedi anche

  • la funzione preg_replace,
    che esegue la sostituzione con un'espressione regolare
  • la funzione preg_match,
    che verifica la corrispondenza con un'espressione regolare