将键数组和值数组组合成一个新的键值对数组

问题描述 投票:0回答:3

我有两个相同大小的数组。 我想将两者合并,以便其中一个的值是新数组的键索引,新数组的值是另一个的值。

现在我只是循环遍历数组并手动创建新数组,但我有一种感觉有一种更优雅的方法来解决这个问题。 我没有看到任何用于此目的的数组函数,但也许我错过了一些东西? 有没有一种简单的方法可以做到这一点?

$mapped_array = mapkeys($array_with_keys, $array_with_values);
php arrays associative-array
3个回答
74
投票

请参阅 PHP.net 上的

array_combine()


18
投票

(来自文档以便于阅读)

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
)

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.