Cita: preg_filter() es idéntica a preg_replace() excepto que sólo devuelve los sujetos (posiblemente tranformados) donde hubo una coincidencia.
Código PHP:
Ver original<?php
$sujeto = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); $patrón = array('/\d/', '/[a-z]/', '/[1a]/'); $sustitución = array('A:$0', 'B:$0', 'C:$0');
echo "preg_filter devuelve\n";
print_r(preg_filter
($patrón, $sustitución, $sujeto));
echo "preg_replace devuelve\n";
?>
Cita: preg_filter devuelve
Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[7] => A:4
)
preg_replace devuelve
Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[5] => A
[6] => B
[7] => A:4
)
en resumen preg_filter es como hacer un preg_replace + array_diff, antes de PHP 5.3.0 se puede lograr el mismo resultado que preg_filter, combinando estas 2 funciones.
Saludos