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