Как сделать замену с массивом с помощью регулярных выражений?
Как осуществить замену в строке данными из массива?
Думаю что нашел решение вопроса. Выглядит правильным.<?php

//$string = "Carrier with such method not found: %, %";
//$string = "Carrier with such method not found: %1, %2";
//$string = "Carrier with such method not found: %2, %3";
$string = "Carrier with such method not found: %1, %1";
$replacements = [
    'ups',
    'GND'
];

echo preg_replace_callback('/\%(\w+)/', function($matches) use (&$replacements) {
    return array_shift($replacements);
}, $string);