我正在尝试设置一个等于我的 $_POST 变量的子数组之一的变量。
$array[] = $_POST['contact-info'];
echo $array['email'];
但它不会工作,因为它会回显 NULL。
有什么建议么?
将此子数组分配给变量不需要方括号。
$array = $_POST['contact-info'];
echo $array['email'];
如其他地方所述,电子邮件目前是空的。数组的结构应该与表单匹配,如果您的表单是
name="contact-info[email]"
然后在 PHP 中你可以访问它
$contact_info = $_POST['contact-info'];
$email = $contact_info['email'];
或者
$email = $_POST['contact-info']['email'];
此外,在调试数组时尝试更清楚一点,它可以更容易地发现关联。
<pre>
<?php print_r($_POST);?>
</pre>
$_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'];
?>
$array['email']
永远不会设置。你像这样设置数组:
$array[] = $_POST['contact-info'];
因此,假设这是您第一次使用$array
,那么您将通过以下方式访问电子邮件:
echo $array[0]['email'];
如果你不需要$array
多维,你总是可以这样做:
$array = $_POST['contact-info'];
echo $array['email'];