我有键数组和值数组。
$keys = [
0 => 'Test'
1 => 'John'
...
22 => 'Kate'
23 => 'Bob'
]
我运行array_filter($values)
来清除不需要的空值,然后得到这样的结果
$values = [
1 => '$3'
22 => '$10'
23 => '$50'
]
我的目标是实现
[
'John' => '$3',
'Kate' => '$10',
'Bob' => '$50'
]
是否可以通过这种方式映射它而无需创建for循环和新数组来分别分配每个索引?
我尝试使用array_intersect_key
,但根本无法接近。
编辑:我的版本如下所示,但我确定有更好的方法:
$selectedCols = array_intersect_key($keys, array_flip(array_keys($values)));
array_combine($selectedCols, $values);
答案 0 :(得分:1)
您应该首先使用array_combine
(https://www.php.net/manual/en/function.array-combine.php)合并两个数组,然后对结果应用array_filter
。那应该做。
array_filter(array_combine($keys, $filters));