将两个数组合并为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); }