是否有内置的PHP函数只返回某些数组键及其值?

时间:2014-03-11 13:25:56

标签: php

给出以下数组:

$data = [
    'a' => 1,
    'b' => 2,
    'c' => 3
];

是否有一个PHP函数,用这种方式调用:

x($data, ['a', 'c']);

会返回此结果:

[
    'a' => 1,
    'c' => 3
]

请注意我知道如何编写代码以生成预期结果,所以请仅在有本机PHP函数的情况下才能回答,或者如果你知道这一点,那么就没有提到。

1 个答案:

答案 0 :(得分:3)

没有内置功能完全相同的东西,但你可以很容易地将它们中的两个结合起来实现你想要的东西:

$keys = ['a', 'c'];
$result = array_intersect_key($data, array_flip($keys));

array_flip()翻转给定数组的值和键 - 这样做是为了将搜索值转换为数组的键。 array_intersect_key()比较两个数组的键并返回匹配。

Demo