Подтвердить что ты не робот

Поиск и замена нескольких значений несколькими/разными значениями в PHP5?

Есть ли встроенная функция PHP для замены нескольких значений внутри строки массивом, который точно определяет, что заменяется тем, что?

Например:

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

И получилось бы: bleh blerh bleh bleh blerh.

4b9b3361

Ответ 1

Вы ищете str_replace().

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

//Дополнительный совет:

И если вы застряли с ассоциативным массивом, как в вашем примере, вы можете разделить его так:

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

Ответ 2

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

Подробное объяснение можно найти в manual.

Ответ 3

str_replace() делает это.

Вы можете проверить manual для более подробного объяснения.

Ответ 4

Для того, что у вас есть, просто передайте этот массив в str_replace как для поиска, так и для замены (используя array_keys в параметре поиска, если вы хотите сохранить массив как есть).