从多维$ _POST数组设置变量

时间:2013-06-25 21:54:59

标签: php arrays

我正在尝试将变量设置为等于$ _POST变量的一个子数组。

$array[] = $_POST['contact-info'];
echo $array['email'];

虽然它回应了NULL,但它无法正常工作。

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

您不需要使用方括号将此子数组分配给变量。

$array = $_POST['contact-info'];
echo $array['email'];

答案 1 :(得分:0)

$ _ POST简直不是一个多维数组。 echo print_r($_POST,1);将显示$ _POST中的内容。使用时,PHP将使用键(字符串) - 值(字符串)对为您填充$ _POST。如果$ _POST确实包含子数组,那么它可能由您自己或您正在使用的某个框架填充。

现在我猜测contact-info是您提交的表单的表单名称。在阅读提交的表格时,表格名称并不重要。您可以通过发送字段的名称直接访问发送的数据..

例如,如果你有:

<form name="contact-info" action="yourscript.php" method="post">
  Please enter your e-mail address:<br/>
  <input name="email" type="text" value="" />
</form>

然后在你的PHP脚本中你应该:

<?php
  echo "You just entered: " . $_POST['email']; 
?>

答案 2 :(得分:0)

永远不会设置

$array['email']。您可以像这样设置数组:

$array[] = $_POST['contact-info'];

假设这是您第一次使用$array,那么您将通过以下方式访问电子邮件:

echo $array[0]['email'];

如果您不需要$array多维,您可以随时执行:

$array = $_POST['contact-info'];
echo $array['email'];

答案 3 :(得分:0)

如其他地方所述,该电子邮件目前是空的。如果您的表单是

,则数组的结构应与表单匹配
name="contact-info[email]"

然后在PHP中,您可以访问

$contact_info = $_POST['contact-info'];
$email = $contact_info['email'];

OR

$email = $_POST['contact-info']['email'];

另外,在调试数组时,尝试更清晰一点,它可以更容易地发现关联。

<pre>
<?php print_r($_POST);?>
</pre>