Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中,如何在不使用循环的情况下计算多维数组的元素数?_Php_Arrays_Multidimensional Array - Fatal编程技术网

在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
将完美地工作