将键数组映射到值数组

时间:2019-11-16 16:09:35

标签: php arrays

我有键数组和值数组。

$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);

1 个答案:

答案 0 :(得分:1)

您应该首先使用array_combinehttps://www.php.net/manual/en/function.array-combine.php)合并两个数组,然后对结果应用array_filter。那应该做。

array_filter(array_combine($keys, $filters));