Должно быть так же просто, как:
foreach ($variable as &$v)
{
$v = str_replace(array_keys($constants), array_values($constants), $v);
}
unset($v);
Обратите внимание, что, вероятно, более оптимальным будет сделать что-то подобное до цикла:
$keys = array_keys($constants);
$vals = array_values($constants);
И затем использовать их напрямую вместо вызова array_key / vals во время каждой итерации.
И, если подумать, это, вероятно, лучше:
foreach ($variable as &$v)
{
$v = strtr($v, $constants);
}
unset($v);
потому что он не обрабатывается первым до последнего, и вы должны получить согласованное поведение независимо от того, как отсортированы константы.