请帮我过滤数组
我有一个数组:
$arr=[
'test' => [
'access' => 111,
'aa' => [
'access'=> 222,
'bb' => 333
],
],
'access' => 444,
'value' => 555
];
我想要
$arr=[
'test' => [
'access' => 111,
'aa' => [
'access'=> 222,
],
],
'access' => 444,
];
我愿意
function array_filter_recursive($input)
{
foreach ($input as &$value) {
if (is_array($value)) {
$value = array_filter_recursive($value);
}
}
return array_filter($input,function ($key){
return $key == 'access';
},ARRAY_FILTER_USE_KEY);
}
var_dump(array_filter_recursive($arr));
只返回1个项目
如果我像这样改变函数 return $key != 'access';
它返回数组而不返回 key==access
但如果$key=='access',则不起作用
1条答案
按热度按时间mdfafbf11#
您只想删除未命名的密钥
access
并且该值不是嵌套数组。这样,就可以保留任何中间数组。你不能用
array_filter()
,因为它只接收值,而不接收键。所以,在你的生活中这样做foreach
环