Есть ли встроенная функция 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
в параметре поиска, если вы хотите сохранить массив как есть).