- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть такая переменная с текстом:
$text ="текст [45] текст [78] текст [31] текст [19] текст";
Есть массив из четырех эллементов:
$array = array(
19 => "<img src='19.jpg'>",
24 => "<img src='24.jpg'>",
45 => "<img src='45.jpg'>",
78 => "<img src='78.jpg'>",
)
Необходимо заменить числа в квадратных скобках на соответствующие эллементы массива.
Т.е. в результате мне нужно получить строку:
$text ="текст <img src='45.jpg'> текст <img src='78.jpg'> текст [31] текст <img src='19.jpg'> текст";
Подскажите в каком направлении копать! Мозг кипит!
PS Прошу обратить внимание что в примере только три соответствия и они идут непоследовательно
Чем обычный цикл не подошёл? Хоть for, хоть foreach
Подскажите в каком направлении копать! Мозг кипит!
http://php.net/manual/en/function.strtr.php
как-то так
("[$key]",$value,$text)
Да даже str_replace позволяет:
Да даже str_replace позволяет:
"их элементы будут обработаны от первого к последнему." - не годится. Вот результат работы скрипта: текст <img src="19.jpg"> текст <img src="24.jpg"> текст <img src="45.jpg"> текст <img src="78.jpg"> текст
Т.е. он втупую последовательно поменял значения.
---------- Добавлено 06.04.2017 в 09:19 ----------
http://php.net/manual/en/function.strtr.php
Супер!
$text ="текст [45] текст [78] текст [31] текст [19] текст";
$array = array(
"[19]" => "<img src=\"19.jpg\">",
"[24]" => "<img src=\"24.jpg\">",
"[45]" => "<img src=\"45.jpg\">",
"[78]" => "<img src=\"78.jpg\">",
);
$newphrase = strtr($text, $array);
echo $newphrase;
Результат:
текст <img src="45.jpg"> текст <img src="78.jpg"> текст [31] текст <img src="19.jpg"> текст
Спасибо!
Осталось сообразить как создать такой массив..
Потому что надо передавать одним параметрам ключи, а другим - значения. Если имеем в распоряжении массив как в стартпосте.
Осталось сообразить как создать такой массив..
А чем str_replace не устраивает? Этот вариант работает с Вашим исходным массивом.
Прикол.
Вариант с foreach и str_replace работает в 5 раз быстрее, чем strtr
3 раза пересмотрел код.
ответ одинаковый
ЧЯДНТ
100к итераций
Ну так ты первым методом прогрел процессор, конечно второй код быстрее начнет выполняться.