@choupa
Архитектор (обычный, который строит)

Как сделать подстановку из массива с ключом из регулярного выражения?

Есть массив:
$routes = array( [1] => 'one', [2] => 'two', [3] => 'three' );

Есть текст, содержащий числа в конструкциях вида '{a 1}', '{a 3}' и т.д., в которых надо заменить эти самые числа на слова из массива. Как это сделать? Напрашивается регулярка, но не пойму, как брать найденные числа в качестве индекса. Хочется как бы так: (я условно напишу заведомо неправильный синтаксис, но вы поймёте):

preg_replace("/\{a (\d+)}/g", "<a href=\"".$routes[\\1]."\">", $text);

Ну а как по нормальному сделать?

Спасибо за помощь.
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
$text = preg_replace_callback("/\{a (\d+)\}/", function($matches) use($routes) {
  return "{a ".$routes[$matches[1]]."}";
}, $text);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы