如何使用另一个数组中的值作为键从数组中选择值的子集


How can I select a subset of values from an array using the values from another array as keys?

这是我的$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数组以使值成为键,然后使用array_entersect_key():

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

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