将两个数组合并为PHP中的键值对

时间:2008-10-02 12:35:44

标签: php arrays

我有两个相同大小的数组。我想合并这两个,所以一个的值是新数组的关键索引,新数组的值是另一个的值。

现在我只是循环遍历数组并手动创建新数组,但我觉得有一种更优雅的方式可以解决这个问题。我没有为此目的看到任何数组函数,但也许我错过了什么?在这些方面有一个简单的方法吗?

$mapped_array = mapkeys($array_with_keys, $array_with_values);

3 个答案:

答案 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);
}