通过键获取数组中的特定元素

5
我很确定有一个函数可以实现这个功能:
我目前拥有的是:
$myArray = array( 'foo' => 123, 'bar' => 456, 'lou' => 789, 'wuh' => 'xyz' );
$iNeed = array( 'foo', 'lou' );

我要如何获取与$iNeed相对应的键值对呢?
$output = super_magic_function( $iNeed, $myArray );
// output should be array( 'foo' => 123, 'lou' => 789 );

如何调用那个super_magic_function(如果可能的话,使用原生php)


为什么你不能做到呢? - ka_lin
为什么不试一下,如果它不起作用并且您无法弄清原因,我们会为您找出问题所在。 - Henk Jansen
@HenkJansen 我已经尝试过使用array_intersect,但得到了一个空数组。 - Xaver
@AmazingDreams array_combine 的参数必须具有相同数量的元素。 - Xaver
1个回答

6
$output = array_intersect_key($myArray, array_flip($iNeed));

如果你需要它作为一个函数:
function super_magic_function($array, $required) {
    return array_intersect_key($array, array_flip($required));
}

输出:

Array
(
    [foo] => 123
    [lou] => 789
)

文档:array_intersect_key()array_flip()

演示。


太棒了!这就是我正在寻找的。 - Xaver
哇 - 演示是锦上添花! - DavidC
哈哈,我很高兴能够帮助你。干杯 :) - Amal Murali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接