![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Zmiuko |
|
||||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
Такая проблема!
есть файл "base.txt" вида:
, где первые три ячейки данные, а четвертая показывает можно ли перемещать строку данных вних/вверх вдоль таблицы или оставить на месте. Далее присутствует скрипт "1.php" c кодом:
, который заставляет строки замещая друг-друга перемещаться вниз либо вверх вдоль таблицы. Cуть проблемы: необходимо перемещать строки так, чтобы закрепленные с индетификатором (допустим) "1" оставались на месте не меняя своего положения, другие же свободно перемещались. Не могу продумать код для функции. |
||||
|
|||||
Zmiuko |
|
|||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
Никто не поможет? Идей нет никаких?
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
просто не понятно. зачем перемещать? с какой целью? просто отсортировать, не трогая отмеченные 1 строки? а по какому критерию?
|
|||
|
||||
Zmiuko |
|
|||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
Это меню, которое я дергаю из текстового файла, цель: необходимо произвести перемещение всех строк по номерам, либо вверх, либо вниз.. в зависимости от того какую команду дадут (переместить на одну позицию вверх, либо вниз соответственно)... но не трогая те что под указателем "1"..
То есть, строки перемещаем между собой, а если впереди строка с указателем, либо две-три... пять!.. то их просто перепрыгиваем. ) |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
$str - исходный данные. $line - номер строки, которую требуется переместить. $up - направление перемещения, по умолчанию false-вниз, true - вверх. Возвращает строку с перемещенными линиями, либо не перемещенными, если передан неверный номер линии или стоит запрет на перемещение. Это сообщение отредактировал(а) enof - 13.3.2009, 22:41 |
|||
|
||||
Zmiuko |
|
|||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
Спасибо за старания, но не получается. Отдает пустой массив.
Надо бы разъяснить что к чему: Короче, файл "base.txt" база ссылок в меню, и представляет собой строки, с данными идущими через разделитель, т.е.: данные::данные::данные и т.д.:: указатель, передвигать ли данную строку либо перепрыгнуть ее в любом направлении так как она не должна двигаться потом файл подключаем и проходим по нему циклом: for($i=0;$i<count($arr);$i++) { $arr2 = explode("::", $arr[$i]); if($arr[3]=="1") { echo $arr[$i];} else { echo $arr[$i]." -- <a href=?id=${i}&up=>Поднять</a> -- <a href=?id=${i}&down=>Опустить</a>";} echo "<br>"; } На экран вымещается список содержимого файла, допустим, и если есть указатель, то ссылку прячем, если нет то имеем ввиду что данную строку можно передвинуть. Загвоздка в том, что функцией можно заставить перепрыгнуть предыдущую или последующую закрепленную ссылку без проблем, но а вот если их идут три, четыры, а то и пять подряд, а затем через одну нормальную еще закрепленная, что тогда? Наверно я тупой. Простите, господа, моск плавится... |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
![]()
Прекрасно работает, вторая строка меняется место с третьей. |
|||
|
||||
Zmiuko |
|
|||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
Прости, тут что-то у меня не так.
Выдает: <pre>данные #1 || данные #1 || данные #1 || 0 данные #2 || данные #2 || данные #2 || 0 данные #3 || данные #3 || данные #3 || 0 данные #4 || данные #4 || данные #4 || 1 данные #5 || данные #5 || данные #5 || 1 данные #6 || данные #6 || данные #6 || 1 данные #7 || данные #7 || данные #7 || 0 данные #8 || данные #8 || данные #8 || 1 данные #9 || данные #9 || данные #9 || 0 данные #10 || данные #10 || данные #10 || 1 данные #11 || данные #11 || данные #11 || 1 данные #12 || данные #12 || данные #12 || 0 , т.е. как и было.. ![]() Добавлено через 2 минуты и 52 секунды То есть пых выдает мне на экран тоже самое, что было и до обработки функцией. Ошибок нет. ![]() |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Zmiuko, копипаст из редактора, у меня все работает.
Попробуйте вместо \n поставьте везде \r\n |
|||
|
||||
Zmiuko |
|
|||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
![]() |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Zmiuko, всмысле?
все перепрыгивает нормально, или я чего-то непонимаю? |
|||
|
||||
Zmiuko |
|
|||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
Извините за то что человек спит ))) действительно все просто, вот единственное не могу применить данную функцию к массиву, поможите?
Добавлено через 6 минут и 41 секунду Да, препрыгивает. Просто необходимо именно под массив данных это преобразовать. то у нас строки: данные #1 || данные #1 || данные #1 || 0 данные #2 || данные #2 || данные #2 || 0 данные #3 || данные #3 || данные #3 || 0 данные #4 || данные #4 || данные #4 || 1 а то массив: $base = array( array("данные #1","данные #1","данные #1","0"), array("данные #2","данные #2","данные #2","1"), array("данные #3","данные #3","данные #3","0"), array("данные #4","данные #4","данные #4","1"), array("данные #5","данные #5","данные #5","1"), array("данные #6","данные #6","данные #6","0") ); читаем же из файла и парсим потом. |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
del
Добавлено @ 00:09
вот, не увидел добавление к предыдущему посту. Это сообщение отредактировал(а) enof - 14.3.2009, 00:09 |
|||
|
||||
Zmiuko |
|
|||
![]() http://zmiuko.ru ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 8.10.2008 Репутация: 2 Всего: 2 |
))) все заработало...
Кста, тут не подскажешь такую заботу - в моем коде сверху идет допустим так, без закреплений всяких, но если подымаешь 1 запись вверх, то она становится последней, а последняя верхней, тоже самое и если вниз опускать, в твоей функции можно такое разрешение сделать, закрепление же будет исключением: допустим подымаем вторую, первая закреплена и вторая перепрыгивает закрепленную первую и становится последней, тоже самое если бы двигали незакрепленную первую - тоже бы последней стала? )) Первый раз с такой сортировкой сталкиваюсь. )) |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |