Аналоги str_replace в php

322
31 июля 2017, 14:17

Есть код, который ищет значения в одном массиве и изменяет значения строки взяв значения из другого массива? Можно ли как то объеденить данные поиска и данные замены в один асоц. массив?

Вот такой вот код есть:

$a = ['plus', 'minus'];
$b = ['+', '-'];
echo str_replace($a, $b, 'plus minus plus');
//Можно ли это как то переписать под асоц. массив?
//$a = ['plus'=>'+', 'minus'=>'-'];
//echo magic($a, 'plus minus plus');
Answer 1

Например используя strtr:

$a = ['plus'=>'+', 'minus'=>'-'];
echo strtr('plus minus plus', $a);

Но надо быть иногда с ним осторожным. Посмотрите примеры, ознакомьтесь, в чем может быть иногда подвох: http://php.net/manual/ru/function.strtr.php#refsect1-function.strtr-examples

Чуть более сложное решение, но имеет место быть:

$a = ['plus'=>'+', 'minus'=>'-'];
$result = str_replace(
  array_keys($a), 
  array_values($a), 
  'plus minus plus'
); 
echo $result;
READ ALSO
Тернарный оператор классы laravel

Тернарный оператор классы laravel

Как использовать тернарный оператор с классами? Пытаюсь сделать вот так, не выходит:

364
WordPress - запись не видит тему

WordPress - запись не видит тему

Есть своя верстка, которую интегрировал в тему WordPressПри создании новой страницы через админку, страница создается без проблем с дизайном...

373
русский язык в jomSocial

русский язык в jomSocial

Как включить русский язык в jomSocial 42, Joomla 3

371
помогите разобраться в классах php

помогите разобраться в классах php

Прошу знающих в php помочь, изучаю php, для меня вообще первый язык программирования, поэтому в процессе постоянно возникают настолько тупые...

335