2014-11-02 2 views
1

Я ищу функцию для замены определенной комбинации символов со значениями, заданными из массива.Немного другая версия str_replace

Пример:

$array = array('Tom','Smith'); 
$string = 'My first name is %% and my last name is %%'; 

var_dump(str_replace('%%', $array, $string)); 

Ожидаемый результат

Мой первый зовут Том и моя фамилия Смит

, но я получаю

Мой первый name - это массив и моя фамилия является массивом

Я полагаю, что если я ставлю array('%%','%%') в качестве первого параметра для str_replace Я бы получить правильный вывод, но я не всегда могу знать, сколько элементов будет в массиве, так что я ищу функцию, которая только требует замены последовательности один раз и заменяет каждое вхождение каждым последующим элементом массива. Есть ли такая функция?

ответ

7

Для этого просто используйте функцию vsprintf.

var_dump(vsprintf('My first name is %s and my last name is %s', $array) 

каждый %s представляет собой строку. вы должны прочитать format part of this, чтобы понять, почему это %s и что еще может быть

Смежные вопросы