Элементы массива

Рома

был тут
Элементы массива

Есть форма, в котрую входит куча чекбоксов, юзверь ставит галочки в некоторые из них и жмет сабмит.

Дальше скрипт должен сделать в базу столько записей сколько выделено чекбоксов, ну и отличаться эти записи будут только одним полем...

Проблема в том что номер последнего элемента масссива (а имена чекбоксов составляют массив) не равен числу элементов массива-1, т.е.
если массив:

check[25]
check[100]
check[1000]

то гоня цикл от 1 до трех и проверяя выбран ли i-ый элемент я ничего не добьюсь...

Вот... помогите кто может...
 

RomikChef

Guest
делай хидден поля перед чекбоксами. с тем же именем и валуе=0.
получишь полный массив.
 

Рома

был тут
Это не подойдет... то что ты говоришь сработало бы если бы реально существовали

check[0]
check[1]
...........
check[1000],

а выбирались некоторые из них,

но номер массива вытаскивается из поля в базе, номер поля увеличивается автоинкрементом, и если я удаляю какие-то записи образуется дырка типа:

check[0]
check[1]
check[3]

т.о. если я добавлю хидден поля, то я получу реальный размер массива,
но все-равно не смогу в цикле добраться до последнего эл-та массива чтобы проверить выделен он или нет...

Может есть какие-нибудь др идеи... Заранее спасибо...
 

Рома

был тут
Элементы массива.. верхняя граница

:)) это поможет но не до конца :)) Вот кусок мана:

foreach($a as $k => $v) {
print "\$a[$k] => $v.\n";
}

$k-нижняя граница, $v- верхняя, теперь бы мне узнать верхнюю границу...

может есть какая-нибудь функция, которая возвращает последний номер, который записан в поле, которое увеличивается автоинкрементом? count(); как и в начале не подходит, по вышеописанным причинам...
 

su1d

Старожил PHPClubа
Эээ... переведи-ка ман получше.
$k и $v не имеют ничего общего с границами...
 

Рома

был тут
> Эээ... переведи-ка ман получше.
> $k и $v не имеют ничего общего с границами...


Хмм... а может лучше ты скажешь к чему они имеют отношение, а то я и в английском несилен:))
 

su1d

Старожил PHPClubа
Ну если в английском не силён, бросай программирование и иди эскимо на палочки одевать.. ;(

PHP:
<?
$ar = array(1=>1, 10=>2, 100000=>20000);
foreach($ar as $k=>$v) echo "$k=$v 
\n";
?>
запусти это и проанализируй результат
 

Рома

был тут
эскимо на палочки одевать:))

спасибо, до этого я и сам додумался...
 
Сверху