我正在寻找一个我以前用过的PHP函数。我有两个数组:一个主要的数组值和一个索引数组。我想要一种简单的方法来保留索引位于数组之后的所有值,并删除其余的值。所以,我已经通过像这样的foreach循环遍历数组解决了这个问题:
$array = array("Foo", "Bar", "Foobar", "Test");
$indexlist = array(0, 2);
foreach($array as $index => $value) {
if(in_array($index, $indexlist)) {
$result[] = $value;
}
}
所以我的问题不是如何解决问题本身,而是:是否有这样做的PHP函数?这个问题实际上只是基于好奇心,因为我想我记得我曾经使用过这样的功能更早。上面的循环产生以下输出,请求的函数也应该:
Array
(
[0] => Foo
[1] => Foobar
)
答案 0 :(得分:1)
您可能会寻找array_intersect_key()
。此外,因为在你的第二个数组中,键是值,你只需要用array_flip()
翻转数组。
你可以把它放在一起,例如。
print_r(array_intersect_key($array, array_flip($indexlist)));
答案 1 :(得分:0)
$array = array("Foo", "Bar", "Foobar", "Test");
$indexlist = array(0, 2);
foreach($indexlist as $value) {
if(isset($array[$value])) {
$result[] = $array[$value];
}
}