PHP:根据匹配的键从两个数组中的值创建一个数组

3

问题

我想创建一个新的关联数组,它由两个数组中匹配键的相应值组成。

例如:

// first (data) array:
["key1" => "value 1", "key2" => "value 2", "key3" => "value 3"];

// second (map) array:
["key1" => "map1", "key3" => "map3"];

// resulting (combined) array:
["map1" => "value 1", "map3" => "value 3"];

我尝试过的方法

$combined = array();
foreach ($data as $key => $value) {
    if (array_key_exists($key, $map)) {
        $combined[$map[$key]] = $value;
    }
}

问题

有没有一种使用本地PHP函数的方法来实现这个?最好不要比上面的代码更复杂...

这个问题类似于基于另一个数组的键合并数组,但不完全相同。

它也不像使用 array_merge() 和/或 array_combine() 那么简单。请注意,数组的长度不一定相等。

1个回答

3

为什么使用ksort()是个好主意?我猜你认为它会优化性能? - Jason McCreary
好的,只是为了安全起见...因此,当array_combine()运行时,它将按正确的键顺序将它们合并...只是为了安全起见。 - cyadvert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接