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

26 php arrays

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

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

$mapped_array = mapkeys($array_with_keys, $array_with_values);
Run Code Online (Sandbox Code Playgroud)

aib*_*aib 60

array_combine()在PHP.net上查看.

  • 哇,我想这只是其中一个早晨 - 我怎么会错过这个?完美,谢谢! (3认同)

Chr*_*oot 12

(来自易于阅读的文档)

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);
?>
Run Code Online (Sandbox Code Playgroud)

上面的例子将输出:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)
Run Code Online (Sandbox Code Playgroud)


小智 5

这应该可以解决问题

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);
}
Run Code Online (Sandbox Code Playgroud)