У меня есть строка, которая содержит один или несколько целых чисел, разделенных пробелом, например:Отображение целых чисел в строке с preg_replace
$string = '2 7 6 9 11';
Я хочу, чтобы заменить каждое число с соответствующим словом, которое хранится в массив, например:
static $companyTypes = array('word1', 'word2', 'word3', 'word4', 'word5', 'word6', 'word7', 'word8', 'word9', 'word10', 'word11', 'word12');
Так я использовал пример, который я нашел на этой странице: http://php.net/manual/en/function.preg-replace.php
и я определил массив шаблон вроде этого:
$pattern = array('/1/','/2/','/3/','/4/','/5/','/6/','/7/','/8/','/9/','/10/','/11/','/12/');
и, наконец, используется функция preg_replace как это:
$order->company_type= preg_replace($pattern, $companyTypes, $order->company_type);
, но, к сожалению, это решение не будет различать между числами с одной цифрой и чисел с двумя цифрами, так что, если входной строки «1 11» выход будет «word1 word1word1», а не «word1 word11».
Любая помощь будет оценена по достоинству.
Используйте границы слов '\ b':'/\ b1 \ b/','/\ b2 \ b/'и так далее. – HamZa