php - 在 PHP 中合并两个数组

标签 php arrays join merge

我正在尝试从两个当前数组创建一个新数组。试过 array_merge,但它不会给我想要的东西。 $array1 是我传递给函数的键列表。 $array2 保存该函数的结果,但不包含任何不可用的键结果。因此,我想确保所有请求的键都带有 'null':ed 值,如显示的 $result 数组所示。

它有点像这样:

$array1 = array('item1', 'item2', 'item3', 'item4');

$array2 = array(
    'item1' => 'value1',
    'item2' => 'value2',
    'item3' => 'value3'
);

这是我想要的结果:

$result = array(
    'item1' => 'value1',
    'item2' => 'value2',
    'item3' => 'value3',
    'item4' => ''  
);

可以通过这种方式完成,但我认为这不是一个好的解决方案 - 我真的不喜欢通过在代码中添加 @:s 来采取简单的方法来抑制 PHP 错误。根据示例,此示例显然会引发错误,因为 'item4' 不在 $array2 中。

foreach ($keys as $k => $v){
    @$array[$v] = $items[$v]; 
}

那么,实现相同结果的最快(性能方面)方法是什么?

最佳答案

array_fill_keys 将为您构建一个可以在 array_merge 中使用的漂亮数组:

array_merge(array_fill_keys($array1, ''), $array2);

或者,您可以使用执行联合的 + 操作代替 array_merge:

$array2 + array_fill_keys($array1, '');

这个适用于数字键或混合数字/字符串 :)

关于php - 在 PHP 中合并两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2890054/

相关文章:

php - 在同一个 PDO 查询中删除和选择

php - 即使 id 匹配,SQL INNER JOIN 也仅从第二个表中选择最后一行

php - PHP中没有重复的随机范围

javascript - 每次按键时数组都会重置

C数组指针问题

arrays - 使用嵌套结构数组创建 Coldfusion JSON 结构

sql - 如何使用这种不寻常的匹配条件编写连接?

mysql - SQL 对获奖者进行计数并包括 0 个获奖者

php - Netbeans PHP getter/setter 自定义

PHP Openssl 未加载为什么?