PHP-在单个表达式中获取子数组
是否有一种方法可以在单个表达式中从数组中获取子数组,并从原始数组中指定特定的键 举例来说:PHP-在单个表达式中获取子数组,php,arrays,Php,Arrays,是否有一种方法可以在单个表达式中从数组中获取子数组,并从原始数组中指定特定的键 举例来说: $a = array('a' => 1, 'b' => 2, 'c' = 4, 'd' => 'clorch') $b = doesthisfunctionexist($a, 'a', 'c') //$b containing array('a' => 1, 'c' => 4) 我知道我可以编写该函数,但我想知道是否存在类似的本机函数。我不知道有这样的函数,但您可以执行以下
$a = array('a' => 1, 'b' => 2, 'c' = 4, 'd' => 'clorch')
$b = doesthisfunctionexist($a, 'a', 'c')
//$b containing array('a' => 1, 'c' => 4)
我知道我可以编写该函数,但我想知道是否存在类似的本机函数。我不知道有这样的函数,但您可以执行以下操作:
function array_pick($picks, $array)
{
$temp = array();
foreach($array as $key => $value)
{
if(in_array($key, $picks))
{
$temp[$key] = $value;
}
}
return $temp;
}
试着这样做:
$a = array('a' => 1, 'b' => 2, 'c' =>4, 'd' => 'clorch');
$b = array('b','c');
$z = array_pick($b,$a);
var_dump($z);
输出:
array(2) {
["b"]=>
int(2)
["c"]=>
int(4)
}
你是说
array\u key\u exists()
?例如:true===array\u key\u存在('a',['a'=>1])代码>。但它一次只对一个键有效。数组\u键\u的存在不是我所期望的。从名称可以推断返回值是布尔值。从单据上可以确认。看看第三个表达式中$b包含什么-这就是我要找的。我正在考虑这个替代方案。似乎这是我唯一能想到的使用本机函数的方法(也许用array_fill替换array_flip,但想法是一样的)。
$a = array(
"a" => 1,
"b" => 2,
"c" => 4,
"d" => "clorch",
);
$b = array_intersect_key($a, array_flip(array('a', 'c')));
$a = array('a' => 1, 'b' => 2, 'c' => 4, 'd' => 'clorch');
$b = array_intersect_key($a, array_flip(array('a', 'c')));