с массивом дурацкая задача.

Статус
В этой теме нельзя размещать новые ответы.

~xb1x

Новичок
с массивом дурацкая задача.

вобщем есть массив строк:

0 строка - 0||a||...||...
1 строка - 1||b||...||...
2 строка - 2||c||...||...
3 строка - 3||d||...||...
4 строка - 4||e||...||...
5 строка - 5||f||...||...

удаляем строку номер $num, допустим $num =3, получаем:

0 строка - 0||a||...||...
1 строка - 1||b||...||...
2 строка - 2||c||...||...
3 строка - 4||e||...||...
4 строка - 5||f||...||...

задача. перед тем как новый массив будет записан в файл надо что бы первая часть строки (до знаков "||") была равна индексу строки. т.е.

0 строка - 0||a||...||...
1 строка - 1||b||...||...
2 строка - 2||c||...||...
3 строка - 3||e||...||...
4 строка - 4||f||...||...

первая часть = индекс. и записать новый массив в файл...
 

~xb1x

Новичок
Хотелось бы конечно-же красивое, но если же вы не можете, или проблемы со временем, то сойдет любое, спасибо.
 

Фанат

oncle terrible
Команда форума
задача. перед тем как новый массив будет записан в файл надо что бы первая часть строки (до знаков "||") была равна индексу строки
а зачем?
какой смысл дублировать индекс строки?
 

PHPer

Новичок
Автор оригинала: Фанат
а зачем?
какой смысл дублировать индекс строки?
Такой же вопрос возник.
Но если очень надо, то можно хранить массив без индексов и еще один массив с индексами в начале строк
 

Фанат

oncle terrible
Команда форума
кому надо? зачем надо? почему очень надо?
а думать - не надо?
 

FreeSpace

Чукча-читатель
Напомнило, как у меня в самом начале возникало желание "перенумеровать" записи в БД после удаления, чтобы при удалении новости с ID = 5 в БД небыло "дырок" типа 3, 4, 6, 7... :)

По-моему, именно это ты и пытаешься сделать.
Вообще говоря, идея нехорошая.
Допустим, кто-то поставил закладку на страницу с описанием товара по адресу http://www.example.com/product.php?id=5.
Ты решил товар номер 5 удалить, а затем "перенумеровать" всю БД.
Тогда товар с ID = 6 поменял ID на 5, 7 - на 6 и т.д.
Все те, кто поставил себе закладки на товар с ID = 5 и выше, попадут по ссылке из закладки уже не на ту страницу, куда хотели, а на описание вообще другого товара.
 

~xb1x

Новичок
Автор оригинала: Фанат
а зачем?
какой смысл дублировать индекс строки?
индекс содержащийся в массиве помогает генерировать динамическую постраничную навигацию, как вы поняли у меня "база" - текстовый файл.
допустим у нас содержится в массиве 6 строк, ограничение - 5 строк на странице.
когда мы формируем первую страницу получаются ссылки :
...show_entry&action=номер_страницы&num=количество_строк_на_странице&entry=номер_строки.

нулевая строка первой страницы - show_entry&action=1&num=5&entry=0.
первой строка первой страницы - show_entry&action=1&num=5&entry=1.
второй строка первой страницы - show_entry&action=1&num=5&entry=2.
третьей строка первой страницы - show_entry&action=1&num=5&entry=3.
четвертой строка первой страницы - show_entry&action=1&num=5&entry=4.

нулевая строка второй страницы - show_entry&action=2&num=5&entry=0.

именно тут и нужен индекс, перейдя на страницу два мы читаем индекс который равен 5. и получаем правильную ссылку на нулевую строку второй страницы - show_entry&action=2&num=5&entry=5, т.е. номер страницы физически не существует он нужен только для формирования навигации, а вот entry - как раз та строка которую нужно показать в существующем массиве.
 

Фанат

oncle terrible
Команда форума
а зачем вообще entry передавать, если её можно вычислить из action и num?
по-моему, ты просто не подумал хорошенько над своей задачей.
 

~xb1x

Новичок
Автор оригинала: FreeSpace
Напомнило, как у меня в самом начале возникало желание "перенумеровать" записи в БД после удаления, чтобы при удалении новости с ID = 5 в БД небыло "дырок" типа 3, 4, 6, 7... :)

По-моему, именно это ты и пытаешься сделать.
Вообще говоря, идея нехорошая.
Допустим, кто-то поставил закладку на страницу с описанием товара по адресу http://www.example.com/product.php?id=5.
Ты решил товар номер 5 удалить, а затем "перенумеровать" всю БД.
Тогда товар с ID = 6 поменял ID на 5, 7 - на 6 и т.д.
Все те, кто поставил себе закладки на товар с ID = 5 и выше, попадут по ссылке из закладки уже не на ту страницу, куда хотели, а на описание вообще другого товара.
вашу проблему я рассматривал, да, понимаю что "не красиво", дальше буду думать как этого избежать, мне очень хотелось бы решить эту задачу, просто логику работы я понимаю, что и как надо сделать, но написать не могу...

-~{}~ 06.09.06 17:19:

Автор оригинала: Фанат
а зачем вообще entry передавать, если её можно вычислить из action и num?
по-моему, ты просто не подумал хорошенько над своей задачей.
хмм...спасибо, я понял к чему вы клоните, логику тоже понял, думаю действительно так будет правильнее ! но ситуация в том, что очень хотелось бы закрыть этот вопрос решением, это очень поможет мне в дальнейшем. спасибо.
 

Фанат

oncle terrible
Команда форума
вот когда понадобится в дальнейшем - тогда и приходи.
опять поможем в лучшем виде
будь здоров
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху