Функция preg_replace_callback_array
La función preg_replace_callback_array permite realizar múltiples reemplazos en una cadena utilizando diferentes funciones de callback para cada expresión regular. El primer parámetro de la función acepta un array asociativo, donde las claves son las expresiones regulares y los valores son las funciones de callback. El segundo parámetro es la cadena a procesar.
Sintaxis
preg_replace_callback_array(array $patterns_and_callbacks, string $subject): string
Ejemplo
Reemplacemos los números por sus cuadrados y las letras por mayúsculas:
<?php
$str = 'a1b2c3';
$res = preg_replace_callback_array([
'/\d+/' => function($matches) {
return $matches[0] * $matches[0];
},
'/[a-z]/' => function($matches) {
return strtoupper($matches[0]);
}
], $str);
echo $res;
?>
Resultado de la ejecución del código:
'A1B4C9'
Ejemplo
Transformemos las fechas de un formato a otro y resaltemos los números en negrita:
<?php
$text = 'Date: 2023-05-15';
$res = preg_replace_callback_array([
'/(\d{4})-(\d{2})-(\d{2})/' => function($matches) {
return $matches[3].'.'.$matches[2].'.'.$matches[1];
},
'/\d+/' => function($matches) {
return '<b>'.$matches[0].'</b>';
}
], $text);
echo $res;
?>
Resultado de la ejecución del código:
'Date: <b>15</b>.<b>05</b>.<b>2023</b>'
Ver también
-
la función
preg_replace_callback,
que realiza el reemplazo con una única función de callback -
la función
preg_replace,
que realiza el reemplazo mediante una expresión regular