Array push with associate array

半世苍凉 提交于 2019-12-17 19:32:37

问题


If I am working with an associate array like such:

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

and I want to add an element to the end, I would think to do:

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

However, this leaves me with:

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

How can this be avoided so I end up with:

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

Much appreciated!


回答1:


You are using an associative array so you just set the key/value pair like this.

$array["Password"] = pass;

I think you may need to review the difference between an array and an associative array. For example if I ran the same command again with a different value it would overwrite the old one:

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

Giving you this

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

Which judging by your question is not what your expecting




回答2:


Try out array_merge instead:

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

This produces the array:

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



回答3:


Associative arrays aren't designed to have their keys in order. You can add an element via

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



回答4:


Generally, with an associative array you don't have control over the order of the elements.

The elements can be in any order.

However I've found php keeps the order that you add them.

So just do $myarra["name"] = "password"



来源:https://stackoverflow.com/questions/6618150/array-push-with-associate-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!