Php 返回包含多个X元素的多维数组的数组函数?

Php 返回包含多个X元素的多维数组的数组函数?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想知道是否有任何本机函数或方法可以知道那些包含超过X个元素的键并保留键,我不知道我是否理解了自己,所以我将用那些等于或大于2个元素的键来做一个例子 $array = Array ( [A] => 1 [B] => 2 [C] => 3 [D] => Array (

我想知道是否有任何本机函数或方法可以知道那些包含超过X个元素的键并保留键,我不知道我是否理解了自己,所以我将用那些等于或大于2个元素的键来做一个例子

$array = Array ( 
                [A] => 1 
                [B] => 2 
                [C] => 3 
                [D] => Array 
                     ( 
                       [0] => 2 
                       [1] => 6 
                     ) 
                [F] => Array 
                     ( 
                       [0] => 9 
                       [1] => 3 
                     ) 
                [E] => 1)
               ) 

我想要什么

$array = Array ( [D] => Array 
                     ( 
                       [0] => 2 
                       [1] => 6 
                     ) 
                [F] => Array 
                     ( 
                       [0] => 9 
                       [1] => 3 
                     ) 
                )

此代码检查当前元素是否为包含>=2个元素的数组:

$array = [
   "A" => 1,
   "B" => 2,
   "C" => 3,
   "D" => [2,6],
   "F" => [9,3],
   "E" => 1
];

 
$result = [];
foreach ($array as $k => $v) {
    if (is_array($v) && count($v) >= 2) {
        $result[$k] = $v;
    }
}
$result的输出

(
    [D] => Array
        (
            [0] => 2
            [1] => 6
        )

    [F] => Array
        (
            [0] => 9
            [1] => 3
        )

)

对于给定的数组格式,您可以使用array_walk()并为dyanamic$XElement获取所需的输出

$final_arr = array();
$xElement = 1; // return all array which has more than 1 element
array_walk($array,function($value,$key, $xElement)  use(&$final_arr){
    if( is_array($value) && count($value) > $xElement ){
        $final_arr = array_merge($final_arr,array($key => $value));
    }
}, $xElement);
echo "<pre>";
print_r($final_arr);
$final_arr=array();
$xElement=1;//返回包含多个元素的所有数组
数组_walk($array,function($value,$key,$xElement)使用(&$final_arr){
if(is_数组($value)&&count($value)>$xElement){
$final\u arr=array\u merge($final\u arr,array($key=>$value));
}
}(1元),;
回声“;
打印(最终);

如果(count($array[INDEX])>=2)检查此处的输出ᛦ 这在php>=7.2中不起作用,因为整数没有实现可数,您需要先检查它。@MHewison绝对正确,谢谢您如果不需要保留原始数组,您只需取消设置不满足条件的键
if(!is_array($v)| |!count($v)>=2){unset($array[$k])}
,但通常我不会覆盖变量/数组,而是定义新的@MHewison