在PHP和HTML中使用“和'内部子数组的正确方法是什么?

时间:2009-08-13 21:30:00

标签: php html arrays

在PHP的子数组中使用字符“和”时,下列哪种方法是正确的?

#1调试PHP代码的方法

$_POST["login['username']"];

#2我在PHP中的原始方式

$_POST['login[username]'];

将所有变量更改为数组后,我的代码现已中断。


以下是变量引用的HTML。

<p>Username:
         <input name="login['username']" type="text" cols="92" />
     </p>

     <p>Email:
         <input name="login['email']" type="text" cols="92" />
     </p>

     <p>Password:
         <input name="login['password']" type="password" cols="92" />
     </p> 

     <input type="submit" value="OK" />
 </form>

在HTML中使用数组时,以下哪种方法是正确的。

#11

<input name="login['password']" type="password" cols="92" />

#22

<input name="login[password]" type="password" cols="92" />

我目前正在使用#1和#11的方式失败?

3 个答案:

答案 0 :(得分:6)

您不需要在HTML中引用数组键,这是正确的:

<input name="login[password]" type="password" cols="92" />

这将在$ _POST中创建一个键'login',其值是另一个具有键'password'的数组,因此您可以像以下一样访问它:

$_POST['login']['password']

答案 1 :(得分:2)

首先,html中的正确形式是#22(没有引号)。

其次,这样做的全部意义在于它会将其转换为数组。发布此表单时,会在$ _POST INSIDE中创建一个名为login的数组。要访问它,请尝试以下操作:

echo $_POST['login']['username']; //echos username
echo $_POST['login']['password']; //echos password

以下是嵌套外观的快速概述:

'_POST' =>
    array
      'login' => 
        array
          'username' => string 'myusername' (length=10)
          'password' => string 'mysecretpassword' (length=16)

尝试这样做可以很好地了解正在发生的事情,并获得如上所述的输出:

echo "<pre>";
var_dump($_POST);
echo "</pre>";

你将能够看到所有的嵌套。

答案 2 :(得分:-2)

只需为变量指定正常名称:usernamepasswordemail。你正在创造自己的问题。