Web

Как получить массив ввода формы в массив PHP

У меня есть форма, как показано ниже, которая размещается в contacts.php, и пользователь может динамически добавлять дополнительные данные с помощью jquery.

<input type="text" name="name[]" />

<input type="text" name="email[]" />

<input type="text" name="name[]" />

<input type="text" name="email[]" />

<input type="text" name="name[]" />

<input type="text" name="email[]" />

 

Если я повторю это на php с кодом ниже:

$name = $_POST['name'];

$email = $_POST['account'];

foreach( $name as $v ) {

  print $v;

}

foreach( $email as $v ) {

  print $v;

}

 

Получу что-то вроде этого:

name1name2name3email1email2email3

 

Как я могу превратить эти массивы во что-то вроде кода ниже:

function show_Names($n, $m) {

  return("Имя $n и адрес электронной почты $m, спасибо");

}

$a = array("name1", "name2", "name3");

$b = array("email1", "email2", "email3");

$c = array_map("show_Names", $a, $b);

print_r($c);

 

 

Так, чтобы мой результат был таким:

 

Имя name1 и адрес электронной почты email1, спасибо
Имя name2 и адрес электронной почты email2, спасибо
Имя name3 и адрес электронной почты email3, спасибо

 

Спасибо за любую помощь или совет.

 

 

Ответ 1

Они уже находятся в массивах: $name массив, как и $email.

Поэтому все, что вам нужно сделать, это добавить немного обработки, чтобы использовать оба массива:

$name = $_POST['name'];

$email = $_POST['account'];

foreach( $name as $key => $n ) {

  print "Имя - ".$n." и email - ".$email[$key].", спасибо\n";

}

 

Чтобы обработать больше входных данных, просто расширьте шаблон:

$name = $_POST['name'];

$email = $_POST['account'];

$location = $_POST['location'];

foreach( $name as $key => $n ) {

  print "Имя ".$n.", электронная почта ".$email[$key].

        ", местоположение - ".$location[$key].". Спасибо\n";

 

Ответ 2

Например, назвав поля как:

<input type="text" name="item[0][name]" />

<input type="text" name="item[0][email]" />

<input type="text" name="item[1][name]" />

<input type="text" name="item[1][email]" />

<input type="text" name="item[2][name]" />

<input type="text" name="item[2][email]" />

(что также возможно при добавлении элементов через javascript). Соответствующий скрипт php может выглядеть так:

function show_Names($e) {

  return("Имя $n и адрес электронной почты $m, спасибо");

}

$c = array_map("show_Names", $_POST['item']);

print_r($c);

 

 

Ответ 3

Вы могли бы сделать что-то вроде этого:

function AddToArray ($post_information) {

    //Создаем возвращаемый массив

    $return = array();

    //Итерация по переданному массиву

    foreach ($post_information as $key => $value) {

        //Добавьте ключ и значение в массив, например.

            //$_POST['keys'] = "values" будет находиться в массиве как "keys"=>"values"

        $return[$key] = $value;

    }

    //Возвращаем созданный массив

    return $return;

}

 

Для теста:

if (isset($_POST['submit'])) {

    var_dump(AddToArray($_POST));

}

 

Результат:

array (size=1)

  0 => 

    array (size=5)

      'stake' => string '0' (length=1)

      'odds'  => string '' (length=0)

      'ew'    => string 'false' (length=5)

      'ew_deduction' => string '' (length=0)

      'submit' => string 'Open' (length=4)

 

 

Ответ 4

Вы можете использовать приведенный ниже код:

$a = array('name1','name2','name3');

$b = array('email1','email2','email3');

function f($a,$b){

  return("Имя $n и адрес электронной почты $m, спасибо");

}

$c = array_map('f', $a, $b);

// вывод результата

foreach ($c as $val) {

    echo $val.'<br>';

}

 

Ответ 5

Использование этого метода должно работать:

$name = $_POST['name'];

$email = $_POST['account'];

while($explore=each($email)) {

    echo $explore['key'];

    echo "-";

    echo $explore['value'];

    echo "<br/>";

}

Схожие статьи

Web

Что такое обобщенные функции на примерах, для чего они нужны

Какой хостинг выбрать для сайта
Web

Какой хостинг выбрать для сайта

Web

Почему Laravel удаляет данные связанной модели по user_id в загруженной функции модели User

Web

Распаковка файла с помощью php

×