20

如果我正在使用这样的关联数组:

Array ( [Username] => user 
        [Email] => email 
      )

我想在最后添加一个元素,我想这样做:

array_push($array, array('Password' => 'pass'));

然而,这给我留下了:

Array ( [Username] => user 
        [Email] => email
        Array ( [Password] => pass )
      )

如何避免这种情况,所以我最终得到:

Array ( [Username] => user 
        [Email] => email
        [Password] => pass
      )

非常感激!

4

4 回答 4

34

您正在使用关联数组,因此您只需像这样设置键/值对。

$array["Password"] = pass;

我认为您可能需要查看数组和关联数组之间的区别。例如,如果我再次使用不同的值运行相同的命令,它将覆盖旧的:

$array["Password"] = "overwritten";

给你这个

Array ( [Username] => user 
        [Email] => email
        [Password] => "overwritten"
      )

从你的问题来看,这不是你所期望的

于 2011-07-07T23:07:47.963 回答
14

试试array_merge代替:

$array = array('Username' => 'user', 'Email' => 'email'); 
$array = array_merge($array, array('Password' => 'pass'));

这将产生数组:

array('Username' => 'user', 'Email' => 'email', 'Password' => 'pass');
于 2011-07-07T23:06:12.123 回答
4

关联数组的设计不是为了让它们的键按顺序排列。您可以通过添加元素

$array['Password'] = 'pass';
于 2011-07-07T23:05:58.150 回答
4

通常,对于关联数组,您无法控制元素的顺序。

元素可以按任何顺序排列。

但是我发现 php 保持你添加它们的顺序。

所以就这样做$myarra["name"] = "password"

于 2011-07-07T23:07:11.093 回答