Вернуться




Как получить массив ввода формы в массив 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/>";

}



Если вам понравилась эта статья поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересного и полезного контента!




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





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

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

Для беспроблемного функционирования сайта на просторах интернета необходимо ...

15 Февраля 2021    Web


Как и на чём лучше писать сайты?

Как и на чём лучше писать сайты?

Каждый начинающий сайтостроитель мечтает создать свой уникальный сайт на ко ...

21 Февраля 2021    Web


Ищем качественный и недорогой хостинг? Тогда вам сюда

Ищем качественный и недорогой хостинг? Тогда вам сюда

Рано или поздно всем вебмастерам приходится искать хостинг для своего проек ...

21 Февраля 2021    Web




Напишем