我正在尝试从两个当前数组创建一个新数组。试过 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/