Вот выдержка из одного из комментариев http://php.net/manual/en/function.printf.php:
[Примечание редактора: или просто используйте vprintf ...]
Если вы хотите сделать что-то вроде:
// this doesn't work
printf('There is a difference between %s and %s', array('good', 'evil'));
Вместо
printf('There is a difference between %s and %s', 'good', 'evil');
Вы можете использовать эту функцию:
function printf_array($format, $arr)
{
return call_user_func_array('printf', array_merge((array)$format, $arr));
}
Используйте ее следующим образом:
$goodevil = array('good', 'evil');
printf_array('There is a difference between %s and %s', $goodevil);
И она будетпечать:
There is a difference between good and evil