【问题标题】:How can I select a subset of values from an array using the values from another array as keys? [duplicate]如何使用另一个数组中的值作为键从数组中选择值的子集? [复制]
【发布时间】:2015-04-01 15:16:04
【问题描述】:

这是我的$keys数组:

Array
(
    [0] => 1
    [1] => 3
    [2] => 4
)

还有我的$values

Array
(
    [0] => Red
    [1] => Orange
    [2] => Yellow
    [3] => Green
    [4] => Blue
)

我想使用$keys 中的值作为键创建一个包含$values 中一些值的新数组:

Array
(
    [1] => Orange
    [3] => Green
    [4] => Blue
)

显然我可以foreach 获得我想要的值,但我想确保我不会忽略过多 PHP 数组函数中的某些内容。

我在谷歌上搜索了这个问题,得到的答案是使用array_combine,这不会达到预期的输出。

感谢您的帮助 :)

【问题讨论】:

  • 如果$keys 数组中有重复值,可能会查看链接的第二个答案。
  • 谢谢。我很惭愧重复了一个问题:/

标签: php arrays


【解决方案1】:

翻转$keys 数组以生成值键,然后使用array_intersect_key()

$result = array_intersect_key($values, array_flip($keys));

$values 返回与翻转的$keys 具有相同键的值。

【讨论】:

  • 确实,我不明白为什么OP不想使用foreach
  • @sємsєм:我对foreach没有意见,但是如果有一个内置函数可以实现相同的目标,它可能会更快,不是吗?跨度>
猜你喜欢
  • 1970-01-01
  • 2020-10-10
  • 2021-03-29
  • 2020-02-13
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 2015-06-30
  • 1970-01-01
相关资源
最近更新 更多