web-dev-qa-db-fra.com

Rechercher et remplacer plusieurs valeurs avec plusieurs valeurs / différentes valeurs dans PHP5?

Y a-t-il un inBuget PHP fonction pour remplacer plusieurs valeurs à l'intérieur d'une chaîne avec un tableau qui dicte exactement ce qui est remplacé par quoi?

Par exemple:

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

Et le résultat obtenu serait: 'Bleh Blairh Bleh Bleh Blairh'.

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

Vous pouvez vérifier le Manuel pour une explication détaillée.

19
nithi

str_replace () Est-ce que ça.

Vous pouvez vérifier le manuel pour une explication plus détaillée.

1
chaos

Si quelqu'un cherche à remplacer les mêmes chaînes avec des valeurs différentes (par événement). Exemple, pour remplacer tout ## par chiffres OR = valeurs d'un tableau

$split_at = '##';
$string = "AA ##  BB ##  CC ##  DD";
$new_string = '';
// echo $string;
$replace_num = 1;
$replace_arr = ['first' , 'second' , 'third'];
$split_at_cnt = substr_count($string, $split_at);
for ($split=0; $split <= $split_at_cnt; $split++)
{
    $new_string .= str_replace('##', ($replace_num++)." : ".$replace_arr[$split], substr( $string, 0, strpos($string, $split_at)+strlen($split_at)));
    $string = substr($string, strpos($string, $split_at)+strlen($split_at));
}

echo $new_string;
1
T.Adak

Pour ce que vous avez arrivé là-bas, passez simplement ce tableau dans str_replace comme la recherche et remplacer (en utilisant array_keys Sur le paramètre de recherche si vous souhaitez conserver le tableau tel quel).

0
user42092