我有两个相同大小的数组。我想合并这两个,所以一个的值是新数组的关键索引,新数组的值是另一个的值。
现在我只是循环遍历数组并手动创建新数组,但我觉得有一种更优雅的方式可以解决这个问题。我没有为此目的看到任何数组函数,但也许我错过了什么?在这些方面有一个简单的方法吗?
$mapped_array = mapkeys($array_with_keys, $array_with_values);
答案 0 :(得分:60)
请参阅PHP.net上的array_combine()
。
答案 1 :(得分:11)
(来自易于阅读的文档)
array_combine - 使用一个数组作为键创建一个数组,另一个数组使用其值
<强>描述强>
array array_combine ( array $keys , array $values )
使用keys数组中的值作为键,将values数组中的值作为相应的值,创建一个数组。
<强>参数强>
keys - 要使用的键数组。 key的非法值将转换为字符串。
values - 要使用的值数组
示例强>
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
以上示例将输出:
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
答案 2 :(得分:4)
这应该可以解决问题
function array_merge_keys($ray1, $ray2) {
$keys = array_merge(array_keys($ray1), array_keys($ray2));
$vals = array_merge($ray1, $ray2);
return array_combine($keys, $vals);
}