我有两个相同大小的数组。 我想将两者合并,以便其中一个的值是新数组的键索引,新数组的值是另一个的值。
现在我只是循环遍历数组并手动创建新数组,但我有一种感觉有一种更优雅的方法来解决这个问题。 我没有看到任何用于此目的的数组函数,但也许我错过了一些东西? 有没有一种简单的方法可以做到这一点?
$mapped_array = mapkeys($array_with_keys, $array_with_values);
(来自文档以便于阅读)
array_combine — 使用一个数组作为键,另一个数组作为值来创建一个数组
描述
array array_combine ( array $keys , array $values )
使用keys数组中的值作为键,使用values数组中的值作为相应的值来创建一个数组。
参数
keys - 要使用的键数组。键的非法值将被转换为字符串。
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
)
这应该可以解决问题
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);
}