Php 多维数组中的元素计数?

Php 多维数组中的元素计数?,php,arrays,count,multidimensional-array,Php,Arrays,Count,Multidimensional Array,我试图计算多维数组中的嵌套元素。起初我以为我可以使用COUNT_RECURSIVE,但这是最重要的。所以我尝试了两种不同的方法,没有一种对我有吸引力。有更好的方法吗 $count = 0; foreach ($topics as $t) { foreach ($t as $c) { $count++; } } echo $count; // or echo (count($topics, COUNT_RECURSIVE)-count($topics)); 我将编写

我试图计算多维数组中的嵌套元素。起初我以为我可以使用COUNT_RECURSIVE,但这是最重要的。所以我尝试了两种不同的方法,没有一种对我有吸引力。有更好的方法吗

$count = 0;
foreach ($topics as $t) {
    foreach ($t as $c) {
    $count++; 
    }
}
echo $count;

// or

echo (count($topics, COUNT_RECURSIVE)-count($topics));

我将编写以下代码:

$count = 0;
foreach ($topics as $t) {
    $count+= count($t); 
}
echo $count;

//下面的示例将计算一维或二维数组

$values_count = (count($values, COUNT_RECURSIVE) - count($values)?:count($values));

我认为它可以计算二维数组中的元素。我不喜欢COUNT_递归形式,它对我来说太反直觉了。你的第一个代码块做了任何PHP函数都必须做的事情,才能得到你想要的答案。你回答了你自己的问题,第二个方法是正确的,也是我唯一推荐的方法。我想你应该用值来计算数组元素,但不是那些有数组的吗?另外,你提到了多维数组——我们说的是任意维,还是2维?他的第二个代码块要快得多,并且总是会产生相同的结果。事实上,我很确定第一个代码块是最快的。迈克,你为什么不这么说?
$values_count = (count($values, COUNT_RECURSIVE) - count($values)?:count($values));