2015-04-01 138 views
2

这里是我的$keys阵列:如何从数组中使用另一个数组的值作为键来选择一个值的子集?

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

而且我$values

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

我想在$values$keys创造一些新的值数组使用的值作为键:

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

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

我google了这个问题,并回答为使用array_combine,它不会达到预期的输出。

您的帮助表示赞赏:)

+0

在'$ keys'数组中存在重复值的情况下,可能查看链接的第二个答案。 – AbraCadaver 2015-04-01 15:30:41

+0

谢谢。我很惭愧地重复了一个问题:/ – Kalessin 2015-04-01 16:44:30

回答

5

翻转的$keys阵列,使值的键,然后用array_intersect_key()

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

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

+0

确实,我不明白为什么OP不想使用'foreach'? – SaidbakR 2015-04-01 15:27:11

+0

@sємsєм:我对'foreach'没有问题,但如果有一个内置函数可以实现相同的目标,它可能会更快,不是吗? – Kalessin 2015-04-01 16:45:48

相关问题