Поиск и замена нескольких значений несколькими/разными значениями в PHP5?
Есть ли встроенная функция PHP для замены нескольких значений внутри строки массивом, который точно определяет, что заменяется тем, что?
Например:
$searchreplace_array = Array('blah' => 'bleh', 'blarh' => 'blerh');
$string = 'blah blarh bleh bleh blarh';
И получилось бы: bleh blerh bleh bleh blerh.
Ответы
Ответ 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
в параметре поиска, если вы хотите сохранить массив как есть).