PHP создает массив из полей ввода формы

Я пытаюсь создать массив для хранения чисел и сложить их вместе.

<input type="number" name="numbers[]"/>

Я получаю неопределенную переменную в следующей строке

foreach($numbers as $number)

Я уверен, что это, вероятно, что-то базовое, но я относительно новичок в php, и помощь будет принята с благодарностью.

4 ответа

Решение

Если вы хотите получить сумму массива, который вам не нужно зацикливать, вы можете использовать array_sum

пример

<?php
if (isset($_POST['numbers'])) {
    echo array_sum($_POST['numbers']);
}

?>

<form method="POST">
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="submit" value="add"/>
</form>

Если вы разместили inputЕсли вы показываете одну страницу на другую, и вам нужно просмотреть список, вы должны настроить его следующим образом:

if (isset($_REQUEST['numbers']) && is_array($_REQUEST['numbers'])) {
  $numbers = $_REQUEST['numbers'];

  foreach ($numbers as $number) {
    print $number;
  }
}

Добавьте еще немного кода, но это в основном означает, что $numbers еще не объявлен на этом этапе в коде.

Добавьте эту строку раньше:

$numbers = array();

Теперь это не должно дать вам эту ошибку.

Итак, теперь вопрос в том, где $ числа должны быть установлены? Для этого нам нужно больше информации и кода.

Я не эксперт по PHP, но если я вас правильно понимаю, и вы пытаетесь поместить переменную в массив, вам нужно будет указать, какую часть массива я бы принял. Я уверен, что $array[i] а также $array не то же самое, и что, если вы пытаетесь положить что-то в $array он сможет держать только одну вещь за раз. Если вы просто собираете набор чисел, которые кто-то вводит из формы, вы можете сделать что-то вроде этого.

//For the form
<form action="formHandler.php" method="post">
  <input type="text" name="number1">
  <input type="text" name="number2">
  //continue in this manner for as many numbers as you need to gather.
</form>

//for the PHP side of it.
<?php
  $x=1;
  $numbersArray = array();
  for($i=0; $i<10; $i++){
   $numbersArray[$i] = $_POST['number'.$x];
   $x++;
  }
//to add them up
$total=array_sum($numbersArray);
?>

Я надеюсь, что это правильно, и я надеюсь, что это помогает.

Другие вопросы по тегам