php array_merge如何关联数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (63)

我想把一个项目添加到关联数组的开头。我想最好的办法是使用array_merge,但我从一个mysql数据库中获取产品的id和Name,然后将它作为一个关联数组返回,就像这样:

$products = array (1 => 'Product 1', 42 => 'Product 42', 100 => 'Product 100');

这是我发送一个HTML帮助器来创建一个下拉关联的值和数组的值,设置为下拉选择控件中的文本。我需要的第一个项目是“请选择”的关键是0,所以我这样做:

$products = array_merge(array(0 => "Select a product" ), $products);

结果数组如下所示:

            array(
                      0 => 'Select a product', 
                      1 => 'Product 1', 
                      2 => 'Product 42', 
                      3 => 'Product 100' 
                  );

问题是:为什么array_merge函数需要改变项目的键?

提问于
用户回答回答于

只是为了好玩

$newArray = array_combine(array_merge(array_keys($array1),
                                      array_keys($array2)
                                     ),
                          array_merge(array_values($array1),
                                      array_values($array2)
                                     )
                         );
用户回答回答于

文档

如果你想追加第二个数组的数组元素到第一个数组而不覆盖第一个数组中的元素而不是重新索引,可以使用+ array union operator

使用+union运算符时,第一个数组参数的键将被保留,因此,颠倒参数的顺序并使用union运算符应该执行所需的操作:

$products = $products + array(0 => "Select a product");

扫码关注云+社区

领取腾讯云代金券