我有键数组和值数组。
$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);
您应该首先使用array_combine
(https://www.php.net/manual/en/function.array-combine.php)合并两个数组,然后将其应用于array_filter
结果。那应该做。
array_filter(array_combine($keys, $filters));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句