Я столкнулся со следующей проблемой: у меня есть форма со случайным числом полей. (Это значит, что пользователи могут вводить имена своих коллег-членов, и для команд не существует установленного размера.) Мне нужно, чтобы эти введенные данные были отформатированы при подготовке к хранению в базе данных.
 Структура базы данных прекрасна, она просто получает случайное число $_POST s и помещает их в массив, который является проблемой. 
  До сих пор у меня есть javascript, который позволяет пользователю создавать / удалять бесконечное количество полей с увеличением id s / name s (например, TeamMemberName1, TeamMemberEmail1, TeamMemberName2, TeamMemberEmail2 и т. Д.). 
  Прямо сейчас я создал уродливую серию операторов PHP, которые помещают разумное количество данных POST в многомерную матрицу – я не понимаю, почему команда должна быть больше 50, а затем я собирался обрабатывать массив для удаления любых пустых строк перед передачей его в базу данных. 
Пример:
  $submittedTeamMembers = array ( "teamMember1" => array ( "name" => $_POST["teamMemberName1"], "email" => $_POST["teamMemberEmail1"]) ); 
Но я предполагаю, что есть лучший способ!
Ваши имена могут быть в форме массива, которые PHP прекрасно понимает. Пример:
 <input type="text" name="teamMembers[0]['name']" /> <input type="text" name="teamMembers[0]['email']" /> 
который PHP будет интерпретировать после публикации, как вы ожидали:
 //print_r($_POST['teamMembers']); Array ( [0] => Array ( [name] => foo [email] => bar ) ) 
Просто дайте всем своим полям имя «TeamMemberName []» или «TeamMemberEmail []». Каждый из них должен быть опубликован независимо от того, есть ли значение, поэтому они должны всегда совпадать.
Это передаст их в виде массива на ваш PHP-скрипт на стороне сервера, чтобы вы могли получить к ним доступ так:
 $teamMemberNames = $_POST["teamMemberName"]; $teamMemberEmails = $_POST["teamMemberEmail"]; for ($i = 0; $i < count($teamMemberNames); $i++) echo "name = {$teamMemberNames[$i]}, email = {$teamMemberEmails[$i]}\n";