[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: str_replase в массиве
iskiz
Здравствуйте посетители форума.
Уже довольно долго ломаю голову над одним вопросом. А именно: как сделать замену текста в цикле. А теперь по точнее:

Есть массив такого вида:
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;


И посмотрев результат я припомнил очевидную вещь, цикл выдает только последний результат. У кого-то есть идеи для решения этой задачи? И возможно ли это вообще? Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.