Вы уверены, что вам нужен preg _ *?
Вот как я бы это сделал:
$numerals = range(1, 10);
$str = str_replace('a', $numerals, $str);
Печально пренебрегаемая и часто игнорируемая функция str_replace () может принимать массивы в качестве аргументов.Если в качестве второго аргумента передается массив, он заменяет каждое вхождение строки поиска на соответствующий элемент массива.