2009-02-11 11 views
19

¿Existe una función PHP incorporada para reemplazar valores múltiples dentro de una cadena con una matriz que dicta exactamente qué se reemplaza con qué?¿Buscar y reemplazar valores múltiples con valores múltiples/diferentes en PHP5?

Por ejemplo:

$searchreplace_array = Array('blah' => 'bleh', 'blarh' => 'blerh'); 
$string = 'blah blarh bleh bleh blarh'; 

Y la resultante sería: 'bleh bleh bleh blerh blerh'.

+6

Ese texto de muestra es tremendamente truco a seguir. –

+0

buena pregunta: D – ncomputers

Respuesta

62

Está buscando str_replace().

$string = 'blah blarh bleh bleh blarh'; 
$result = str_replace(
    array('blah', 'blarh'), 
    array('bleh', 'blerh'), 
    $string 
); 

// Consejo adicional:

Y si le pegan con un arreglo asociativo como en tu ejemplo, puede dividir lo que como:

$searchReplaceArray = array(
    'blah' => 'bleh', 
    'blarh' => 'blerh' 
); 
$result = str_replace(
    array_keys($searchReplaceArray), 
    array_values($searchReplaceArray), 
    $string 
); 
1

str_replace() hace eso.

Puede consultar el manual para obtener una explicación más detallada.

0

Por lo que se Llegué allí, simplemente pase esa matriz a str_replace como búsqueda y reemplazo (usando array_keys en el parámetro de búsqueda si desea mantener la matriz como está).

16
$string = 'blah blarh bleh bleh blarh'; 
$trans = array("blah" => "blerh", "bleh" => "blerh"); 
$result = strtr($string,$trans); 

Puede consultar el manual para una explicación más detallada.

+0

Gracias, está trabajando para mí. – Hardik

+0

Utilicé el mismo para array replace :) al convertir array y reemplazarlo :) – Shan

+0

¡excelente respuesta, gracias! :RE – ncomputers

Cuestiones relacionadas