Вопрос

Ответить
Аватара пользователя
E-mail

Вопрос

Сообщение E-mail »

1) есть главный текст $text.

2) мы знаем пять выдержек из текста.

3) мы их записали в массив $mass[0,1,2,3,4]



4) мы создали еще один масив, в котором эти выдержки просто поменялись местами, т.е. массив стал в таком порядке например: $out[3,1,0,2,4]



вопрос: как в тексте $text сделать новое расположение выдержек??



если так,





PHP код:

Код: Выделить всё

$text=str_replace($mass[0],$out[0],$text); 






то не получается. одни дубли выходят.

надо както через дополнительную переменную, но как?...(((



hlp..
Аватара пользователя
ivank

Re: Вопрос

Сообщение ivank »

E-mail

Не самый красивый способ, но работать, я думаю, будет:



PHP код:

Код: Выделить всё

foreach ($mass as $k => $v)

    $text = str_replace($v, "\x01$k\x02", $text);

foreach ($out as $k => $v)

    $text = str_trplace("\x01$k\x02", $v, $text); 






В тексте не должно буть символов с кодами 1 и 2 (в нормальных текстах они не встречаются). При этом заменяемые "выдержки" могут повторяться. Каждое повторение будет заенено.



Если нужно замену сделать только раз, то можно тоже извернуться.
Аватара пользователя
E-mail

Re: Вопрос

Сообщение E-mail »

ivank

спасибо,

а что ето за символы такие?

я сделал тоже нечто подобное токо я к старой выдержке сначало присваивал кусок "|||".$i."старая выдержка"

номер в масиве(он у старых и новых одинаковый)

и потом менял запись не содержащуюю "|||"



твой вариант выглядет более красиво вроде, сп



единственное в чем мой способ лутше это то что в нем токо один цикл
Ответить

Вернуться в «Вебмастеру»