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