微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在PHP中合并两个数组

我正在尝试从两个当前数组创建一个新数组.尝试了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);

或者,可以使用执行联合的op来代替array_merge:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐