关联数组的数组推入

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个回答

34

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

$array["Password"] = pass;

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

$array["Password"] = "overwritten";
给你这个。
Array ( [Username] => user 
        [Email] => email
        [Password] => "overwritten"
      )

根据您的问题,这似乎不是您期望的。


14

尝试使用array_merge代替:

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

这将生成数组:

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

你也可以使用 $array += array('Password' => 'test'); 作为一个快捷方式,但要注意的是,如果已经设置了密码,它不会覆盖密码。个人建议不要这样做,只是额外的资讯。 - brady.vitrano

4

关联数组并不是设计成有序的。您可以通过以下方式添加元素:

$array['Password'] = 'pass';

4

通常,使用关联数组时,您无法控制元素的顺序。

元素可以以任何顺序出现。

但是我发现php会保留添加元素的顺序。

所以只需这样做:$myarra["name"] = "password"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接