5

I have a an array like below:

$array = Array
        (
            '0' => Array
                (
                    'num1' => 123,
                    'num2' => 456,
                ),
            '1' => Array
                (
                    'num3' => 789,
                    'num4' => 147,
                ),
            '2' => Array
                (
                    'num5' => 258,
                    'num6' => 369,
                    'num7' => 987,
                ),
        );

I want to count number of elements i.e. from num1 to num7 means I want output 7. How can i do this without using loop?

Amit Rajput
  • 2,061
  • 1
  • 9
  • 27

2 Answers2

5

use array_sum and array_map function together.

try below solution:

$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));

output

7

alternat way can be:

echo count($array, COUNT_RECURSIVE) - count($array); //output: 7
Chetan Ameta
  • 7,696
  • 3
  • 29
  • 44
2

Using array_sum function

$totalarray = array_sum(array_map("count", $array));

Using Foreach Loop

$count = 0;
foreach( $array as $arrayVal){
    $count += count($arrayVal);
}
Ritesh d joshi
  • 813
  • 1
  • 12
  • 15