是否有内置函数,或者如这里所述的将元素提取到新数组中的更短方法?
<?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
)
是的,可以使用array_intersect_key
,但需要一个哈希表作为第二个参数。
print_r(array_intersect_key($array, array("b"=>"", "d"=>"")));
Array
(
[b] => 2
[d] => 4
)
您可以编写自己的函数,接受一个键数组作为参数,然后将其作为哈希表,以便使用array_intersect_key
function getByKeys($array, $keys)
{
return array_intersect_key($array, array_flip($keys));
}