Php 多维数组中的元素计数?
我试图计算多维数组中的嵌套元素。起初我以为我可以使用COUNT_RECURSIVE,但这是最重要的。所以我尝试了两种不同的方法,没有一种对我有吸引力。有更好的方法吗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 = 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));