2009-02-11 9 views
19

Y at-il une fonction PHP intégrée pour remplacer plusieurs valeurs dans une chaîne avec un tableau qui dicte exactement ce qui est remplacé par quoi?Rechercher et remplacer plusieurs valeurs avec des valeurs multiples/différentes en PHP5?

Par exemple:

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

Et en découlerait serait: «bleh bleh bleh blerh blerh.

+6

Cet exemple de texte est terriblement difficile à suivre. –

+0

bonne question: D – ncomputers

Répondre

62

Vous recherchez str_replace().

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

// astuce supplémentaire:

Et si vous êtes coincé avec un tableau associatif comme dans votre exemple, vous pouvez diviser comme ça:

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

str_replace() le fait.

Vous pouvez consulter le manual pour une explication plus détaillée.

0

Pour ce que vous est arrivé, il suffit de passer ce tableau dans str_replace à la fois la recherche et le remplacement (en utilisant array_keys sur le paramètre de recherche si vous souhaitez conserver le tableau tel quel).

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

Vous pouvez consulter le manual pour une explication détaillée.

+0

Merci, c'est de travailler pour moi. – Hardik

+0

J'ai utilisé le même pour array remplacer :) en convertissant tableau et en le remplaçant :) – Shan

+0

bonne réponse, merci! :RÉ – ncomputers

Questions connexes