在PHP中,如何在不使用循环的情况下计算多维数组的元素数?
我有一个数组,如下所示:在PHP中,如何在不使用循环的情况下计算多维数组的元素数?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个数组,如下所示: $array = Array ( '0' => Array ( 'num1' => 123, 'num2' => 456, ), '1' => Array ( 'num3
$array = Array
(
'0' => Array
(
'num1' => 123,
'num2' => 456,
),
'1' => Array
(
'num3' => 789,
'num4' => 147,
),
'2' => Array
(
'num5' => 258,
'num6' => 369,
'num7' => 987,
),
);
我想要计算元素的数量,即从
num1
到num7
表示我想要输出7
。我如何在不使用循环的情况下执行此操作 同时使用array\u sum
和array\u map
函数
尝试以下解决方案:
$array = Array
(
'0' => Array
(
'num1' => 123,
'num2' => 456,
),
'1' => Array
(
'num3' => 789,
'num4' => 147,
),
'2' => Array
(
'num5' => 258,
'num6' => 369,
'num7' => 987,
),
);
echo $total = array_sum(array_map("count", $array));
输出
7
替代方式可以是:
echo count($array, COUNT_RECURSIVE) - count($array); //output: 7
使用数组和函数
$totalarray = array_sum(array_map("count", $array));
使用Foreach循环
$count = 0;
foreach( $array as $arrayVal){
$count += count($arrayVal);
}
回答得很好,很有帮助。你比我快。我要说的是使用
数组\u walk\u recursive
,但第二种解决方案是完美的。是的,但在第二个答案中,如果数组有任何关联键(不是数组,例如'3'=>10
),那么输出将是错误的,这就是为什么我提到它作为替代方法,但是数组\u map
将完美地工作