问题
我想创建一个新的关联数组,它由两个数组中匹配键的相应值组成。
例如:
// 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()
那么简单。请注意,数组的长度不一定相等。
ksort()
是个好主意?我猜你认为它会优化性能? - Jason McCrearyarray_combine()
运行时,它将按正确的键顺序将它们合并...只是为了安全起见。 - cyadvert