Есть ли встроенная функция PHP для замены нескольких значений внутри строки массивом, который точно определяет, что заменяется на что?
Например:
$searchreplace_array = Array('blah' => 'bleh', 'blarh' => 'blerh'); $string = 'blah blarh bleh bleh blarh'; И в результате получилось бы: bleh blerh bleh bleh blerh.
  Вы ищете 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 ); 
 $string = 'blah blarh bleh bleh blarh'; $trans = array("blah" => "blerh", "bleh" => "blerh"); $result = strtr($string,$trans); 
Подробное объяснение можно найти в руководстве .
str_replace () делает это.
Вы можете проверить руководство для более подробного объяснения.
  Для того, что у вас есть, просто передайте этот массив в str_replace как для поиска, так и для замены (используя array_keys в параметре поиска, если вы хотите сохранить массив как есть).