计算多维数组中的元素

时间:2015-02-20 05:17:39

标签: php arrays multidimensional-array

我有一个PHP数组的问题。我有以下数组:

$arr = array(
  1 => array(1, 2),
  2 => array(1,2,3),
  3 => array(4,array(4,4,4))
);

我想知道总共有多少元素。 例如:

echo count($arr); // result: 3

但我想:7

我想在没有循环的情况下这样做。

有人知道吗,请帮忙吗?

3 个答案:

答案 0 :(得分:2)

选择其中一个

$arr = array(
    1 => array(1, 2),
    2 => array(1, 2, 3),
    3 => array(4, array(4, 4, 4))
);

// iterate over values to find out their size/
var_dump(array_reduce($arr, function($count, $inner_array)
        { return $count + sizeof($inner_array); }, 0));

// merge all value to one big array
var_dump(count(call_user_func_array('array_merge', $arr)));

// create new array with counts of items    
var_dump(array_sum(array_map('sizeof', $arr)));

答案 1 :(得分:0)

<?php

$arr = array(
  1 => array(1, 2),
  2 => array(1,2,3),
  3 => array(4,array(4,4,4))
);

$sum = 0;

foreach($arr as $a => $b) {
    $sum += count($b);
}   

echo $sum;

?>

答案 2 :(得分:0)

$arr = array(
  1 => array(1, 2),
  2 => array(1,2,3),
  3 => array(4,array(4,4,4))
);

$count = 0;
foreach ($arr as $level) {
    $count+= count($level);
}
echo $count;

如果您的数组如下,则可以使用另一种方法获取get 7

$arr = array(
      1 => array(1, 2),
      2 => array(1,2,3),
      3 => array(4,8)
    );
echo (count($arr, COUNT_RECURSIVE) - count($arr));