将两个数组合并为PHP中的键值对
时间:2020-03-06 15:01:25 来源:igfitidea点击:
我有两个相同大小的数组。我想将两者合并,因此一个数组的值是新数组的键索引,而新数组的值是另一数组的值。
现在,我只是循环遍历数组并手动创建新数组,但是我感觉有一种更为优雅的方法可以解决此问题。我没有看到用于此目的的任何数组函数,但是也许我错过了一些东西吗?遵循这些思路,有没有简单的方法?
$mapped_array = mapkeys($array_with_keys, $array_with_values);
解决方案
参见PHP.net上的array_combine()。
(来自文档,易于阅读)
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);
}

