是否有内置函数或更短的方法将元素提取到新数组中,如此处所述?
<?php
function arr_slice ($arr, $keys) {
$ret = array();
foreach ($keys as $k) { $ret[$k] = $arr[$k]; }
return $ret;
}
$array = array(
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4,
);
print_r(
arr_slice($array, array("b", "d"))
);
输出
Array
(
[b] => 2
[d] => 4
)
答案 0 :(得分:4)
是的,你可以使用array_intersect_key
,但你需要一个哈希表作为第二个参数。
print_r(array_intersect_key($array, array("b"=>"", "d"=>"")));
Array
(
[b] => 2
[d] => 4
)
答案 1 :(得分:2)
您可以编写自己的函数,接受一组键作为参数,然后将其作为哈希表使用array_intersect_key
function getByKeys($array, $keys)
{
return array_intersect_key($array, array_flip($keys));
}