Php 如何将数据添加到数组的特定索引中

Php 如何将数据添加到数组的特定索引中,php,arrays,Php,Arrays,我有一个包含用户名的数组,我通过使用array_push将foreach循环中的每个项添加到数组中来创建该数组: array(4) { [0]=> string(13) "Username1" [1]=> string(10) "Username2" [2]=> string(12) "Username3" [3]=> string(11) "Username4" } 我还有一个ID号存储在$ID 如何更改数组,使其同时存储嵌套在数组中的

我有一个包含用户名的数组,我通过使用array_push将foreach循环中的每个项添加到数组中来创建该数组:

array(4) {
  [0]=>
  string(13) "Username1"
  [1]=>
  string(10) "Username2"
  [2]=>
  string(12) "Username3"
  [3]=>
  string(11) "Username4"
}
我还有一个ID号存储在
$ID

如何更改数组,使其同时存储嵌套在数组中的
username
ID
?或者,如果不是这样,那么在数组中保持这两项数据关联的最佳方法是什么

这是创建当前仅存储用户名的数组
$accounts\u list
的代码

$all_accounts = [];
   foreach ($accounts_list as &$account) {
      $name = $account['name'];
      array_push($all_accounts,$name);

      $id = $account['id'];
   }
试试这个:

$all_accounts = array();
foreach ($accounts_list as $account) {
   $all_accounts[$account['id']] = $account['name']'
}

然后访问数组,如:
$all\u accounts['account\u id']

您只需要创建一个包含关联数组元素的数组

$users = array(
    array('id' => 1, 'username' => 'John'),
    array('id' => 2, 'username' => 'Smith'),
    array('id' => 3, 'username' => 'Monica'),
    //...
);

但是我认为,如果你为你的用户使用类,那就更好了。

制作一个这样的数组:$array[id]=username我认为这是最好的方法为什么你不简单地使用
$accounts\u list
?!它似乎是一个或多个数组,其中包含
name
id
键;这正是您想要的。为什么要使用foreach和reference?看看循环,它们已经在同一个位置:
$account['name'],$account['id']