Взял отсюда - http://vvy.me/24-otpravka-i-poluchenie-massiva-iz-html-formy.html
Для начала рассмотрим самую простую форму: <form method="post"> <input type="text" name="input1" value=" value_input1"> <input type="text" name="input2" value=" value_input2"> <input type="text" name="input3" value=" value_input3"> </form> На сервере ее будет ловить маленький и очень понятный скрипт: <? print_r($_POST); ?> В нашем случае функция print_r выведет в удобочитаемом виде весь массив $_POST, посмотрим, что получилось: Array ( [input1] => value_input1 [input2] => value_input2 [input3] => value_input3 ) Т.е. по сути дела, интерпретатор php, до запуска скрипта уже выполнил эти строки: $_POST['input1']='value_input1'; $_POST['input2']='value_input2'; $_POST['input3']='value_input3'; Вроде все хорошо, но мне то нужно из формы получить именно массив, у которого одно имя и много индексов. Многие новички допускают ошибку, они задают для всех input-ов одинаковое имя, посмотрим, что из этого получится. Форма: <form method="post"> <input type="text" name="input" value=" value_input1"> <input type="text" name="input" value=" value_input2"> <input type="text" name="input" value=" value_input3"> </form> Результат: Array ( [input] => value _input3 ) Как видно, на сервер дошло только последнее значение, и не удивительно, ведь интерпретатор при заполнении массива $_POST выполнил строки: $_POST['input']='value_input1'; $_POST['input']='value_input2'; $_POST['input']='value_input3'; Что бы массив взаправду дошел из формы до моего скрипта я должен явно на это указать. Для этого добавляю в конце атрибута name каждого тега пустые квадратные скобки, так же как это делается для задания массива в самом php, теперь форма имеет вид: <form method="post"> <input type="text" name="input[]" value=" value _input1"> <input type="text" name="input[]" value=" value _input2"> <input type="text" name="input[]" value=" value _input3"> </form> А при разборе данных сервер поймет, что я хочу получить именно массив и выполнит: $_POST['input'][]='value_input1'; $_POST['input'][]='value_input2'; $_POST['input'][]='value_input3'; В результате на странице появится гордое Array ( [input] => Array ( [0] => value_input1 [1] => value_input2 [2] => value_input3 ) ) От сюда видно, что в массиве данных пришедших из формы присутствует еще один массив с именем «input» и с ним легко работать, например, перебрать: for ($i=0;$i<count($_POST['input']); $i++) echo $i.'-ой элемент массива из формы равен "'.$_POST['input'][$i].'"<br>'; В результате получим: 0-ой элемент массива из формы равен "value _input1" 1-ой элемент массива из формы равен "value _input2" 2-ой элемент массива из формы равен "value _input3" Похожим способом можно передавать из формы на сервер и многомерные массивы, умный и добрый php снисходительно выполнит любой мой бред.