给出以下数组:
$data = [
'a' => 1,
'b' => 2,
'c' => 3
];
是否有一个PHP函数,用这种方式调用:
x($data, ['a', 'c']);
会返回此结果:
[
'a' => 1,
'c' => 3
]
请注意我知道如何编写代码以生成预期结果,所以请仅在有本机PHP函数的情况下才能回答,或者如果你知道这一点,那么就没有提到。
答案 0 :(得分:3)
没有内置功能完全相同的东西,但你可以很容易地将它们中的两个结合起来实现你想要的东西:
$keys = ['a', 'c'];
$result = array_intersect_key($data, array_flip($keys));
array_flip()
翻转给定数组的值和键 - 这样做是为了将搜索值转换为数组的键。 array_intersect_key()
比较两个数组的键并返回匹配。