Уже довольно долго ломаю голову над одним вопросом. А именно: как сделать замену текста в цикле. А теперь по точнее:
Есть массив такого вида:
Array
(
[1] => Array
(
[0] => year
[1] => 2012
)
[6] => Array
(
[0] => int
[1] => SATRip
)
)
Который записан на переменную "$titlewiwhtext".
Так же есть строка "$stroka = "Какойто текст [int] ([year])". И нужно в строке заменить два значения, а именно "[int]" и "[year]". Тут всё бы ничего, но проблема в том, что количество элементов в массиве неизвестно, то есть массив может быть другим, например:
Array
(
[1] => Array
(
[0] => year
[1] => 2012
)
[6] => Array
(
[0] => int
[1] => bass
)
[8] => Array
(
[0] => how
[1] => 203
)
)
Строка для замены соответственно будет иметь вид на подобие: "$stroka = "Какойто текст [int] ([year]) и еще [how]"
Тут и получилась загвоздка. Так как элемент в массиве может быть один, а может двадцать(в строке, в которой нужно будет производить замену, количество заменяемых элементов равно).
Начал я чтото думать:
$outputnew = array_keys($titlewiwhtext); \\ В массиве элементы идут не по номеру - как мы видим ключи 1,6 и 8
$titlewhile = 0;
$titlewiwhtextnewf = '';
while ($titlewhile <= count($titlewiwhtext)-1) {
$fn = $titlewiwhtext[$outputnew[$titlewhile]][0];
$fl = $titlewiwhtext[$outputnew[$titlewhile]][1];
$titlewiwhtextnewf = str_replace("[$fn]",$fl,$stroka);
$titlewhile++;
}
echo $titlewiwhtextnewf;
И посмотрев результат я припомнил очевидную вещь, цикл выдает только последний результат. У кого-то есть идеи для решения этой задачи? И возможно ли это вообще? Спасибо.