$n = array(1, 2, 3, 33);
$v = array('один', 'два', 'три', 'тридцать три');
$mergeArr = str_replace($n, $v, '1, 2, 33');
echo $mergeArr; //выводит: один, два, тритри
Не могу найти подходящей функции. Или как написать самому регулярку, чтобы правильно выводило?
Первыми ставьте более длинные строки для поиска
<?php
$n = array('33', '1', '2', '3');
$v = array('тридцать три', 'один', 'два', 'три');
$mergeArr = str_replace($n, $v, '1, 2, 33');
echo $mergeArr; // один, два, тридцать три
UPD
Можно использовать функцию strtr() для замены подстрок.
strtr() может вызываться с двумя аргументами. В этом случае from должен быть массивом (array), в форме array('from' => 'to', ...). Функция возвратит строку, в которой все ключи массива будут заменены их элементами. strtr() в первую очередь заменяет более длинные ключи, причем одна и та же строка поиска используется только один раз.
<?php
$n = array(1, 2, 3, 33);
$v = array('один', 'два', 'три', 'тридцать три');
$repl = array_combine($n, $v);
$mergeArr = strtr('1, 2, 33', $repl);
echo $mergeArr; // один, два, тридцать три
Сборка персонального компьютера от Artline: умный выбор для современных пользователей