Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > преобразовать данные из textarea в два массива


Автор: Alx 9.2.2005, 12:23
народ, помогите, я с этими фуекциями уже запутался!

короче говоря, в textarea есть текст вида:

Цитата

строка 1 [45]
вторая строка [243]
ещё третья [5]
ну и хватит [0]



надо из этого получить два массива:

$mas1 = ["строка 1", "вторая строка", "ещё третья", "ну и хватит"];
$mas2 = ["45", "243", "5", "0"];

т.е. вначале делим по \r\n, потом как-нибудь регами... в общем не знаю, я уже заколебался! smile

Автор: Opik 9.2.2005, 15:44
Код
preg_match_all("/(.*) \[([0-9]+)\]\r\n/i", $text, $match);
$mas1 = $match[1];
$mas2 = $match[2];

Автор: Alx 9.2.2005, 17:55
Opr
пасиб!!! а я-то мучился с ereg()! никак не мог понять, что получается в $Matches...

вот теперь всё ок!))
Добавлено @ 18:00
а вот ещё что... может быть такое, что в конце строки стоит [] или вообще без скобок. тогда это надо заменить (или, соответственно, добавить) на [0]. можно так?

Автор: Opik 10.2.2005, 00:49
Alx
можно то можно.. smile)) Но это лучше делать при добавлении, если такое есть smile Просто немного задача не понятна.

Автор: Alx 10.2.2005, 17:01
Opr
Задача такая, что я сейчас пишу голосование и сделал уже всё, кроме функции редактирования. И вот там выводится в textarea все варианты ответов, а в квадратных скобках - количество отданных за них на настоящий момент голосов, чтоб администратор мог редактировать и сами ответы и текущие голоса. так вот я просто вначале не подумал о том, что он может ещё новые варианты ответа прописывать и вполне какой-нибудь stupid может не додуматься поставить скобки. поэтому надо бы проследить за ним))
Добавлено @ 17:02
Цитата(Opr @ 10.2.2005, 00:49)
Но это лучше делать при добавлении

в смысле? что за добавление? в базу? но тогда во втором массиве будет меньше чисел, чем вопросов в первом. просто, собсно надо сделать, что, если в конце ничего или пустые [], то в массив добавляем 0.

Автор: Opik 10.2.2005, 22:42
А в input выводить никак?

Автор: Alx 11.2.2005, 16:22
Opr
ой да ну, неудобно... рисовать, стирать ещё эти инпуты... textarea проще.

Автор: Opik 12.2.2005, 19:14
Alx
while($row = bla bla bla){
print '<input>...';
}

Что тут сложного?

Автор: Alx 13.2.2005, 14:01
Opr
у меня был выбор ещё вначале - textarea или input, я выбрал textarea... мне просто так удобнее... ну ладно, всё равно спасибо))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)