|
|
|
| Добрый день,
заменяю при помощи str_replace значения в строке:
$conv = '+1d +1m +1y';
$conv_js_to_php = array(
'd' => 'day',
'm' => 'month',
'y' => 'year'
);
$return = str_replace(array_keys($conv_js_to_php), array_values($conv_js_to_php), $conv);
|
в результате получаю: +1dayear +1month +1year
ожидал получить: +1day +1month +1year
Так как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое.
preg_replace так же:
$conv = '+1d +1m +1y';
$conv_js_to_php = array(
'/d/' => 'day',
'/m/' => 'month',
'/y/' => 'year'
);
$return = preg_replace(array_keys($conv_js_to_php), array_values($conv_js_to_php), $conv, 1);
|
Каким способом можно не заменять ранее вставленное значение? | |
|
|