2016-04-11 13 views
5

Tôi có một một mảng như dưới đây:Làm cách nào để đếm số phần tử của mảng đa chiều mà không sử dụng vòng lặp trong PHP?

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

tôi muốn đếm số lượng các yếu tố ví dụ num1-num7 có nghĩa là tôi muốn ra 7. Làm thế nào tôi có thể làm điều này mà không cần sử dụng vòng lặp?

Trả lời

5

sử dụng array_sumarray_map hoạt động cùng nhau.

thử dưới đây giải pháp:

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

đầu ra

7 

alternat cách có thể là:

echo count($array, COUNT_RECURSIVE) - count($array); //output: 7 
+1

thật sự tốt đẹp và hữu ích trả lời. Bạn nhanh hơn tôi. –

+1

Có, Nó hoạt động tốt. –

+1

Tôi sẽ nói sử dụng 'array_walk_recursive', nhưng giải pháp thứ hai là hoàn hảo. –

2

Sử dụng chức năng array_sum

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

Sử dụng Foreach Vòng

$count = 0; 
foreach($array as $arrayVal){ 
    $count += count($arrayVal); 
} 
Các vấn đề liên quan