$players = array(
array('Lionel Messi', 'Luis Suarez', 'Neymar Jr'),
array('Ivan Rakitic', 'Andres Iniesta', 'Sergio Busquets'),
array('Gerrard Pique', 'Mascherano', 'Denis Suarez', 'Jordi Alba'),
array('MATS'),
array('Arda Turan', 'Munir El Hadadi', 'Umtiti')
);
现在我试图回应这个数组$ player边界内所有元素的数量。例如,第一个中有3个元素,第二个中有3个元素。第三个元素有4个元素,第4个元素有1个元素,最后一个元素有3个元素。这些元素共有14个元素。现在我要显示'Total Players:14'。我可以使用count()函数显示类别(5)的数量,但不能计算总元素数(14)。我尝试了不同的方法,但没有成功。
答案 0 :(得分:3)
count()
应该可以使用COUNT_RECURSIVE
标记直接为您执行此操作:
$playerCount = count($players, COUNT_RECURSIVE) - count($players);
// $playerCount is now equal to 14
正常计数的减法是因为计数递归地将外部数组的键添加到元素之和中,这只需要从递归计数中减去。
答案 1 :(得分:2)
原生count()
方法可以做到这一点。
$count = count($players, COUNT_RECURSIVE) - count($players);
由于递归count
也会计算您拥有的$player
组的数量,因此您必须从递归计数中减去该数字。
来自count
的<{3}}:
如果可选模式参数设置为COUNT_RECURSIVE(或1),count()将递归计数数组。这对于计算多维数组的所有元素特别有用。
答案 2 :(得分:2)
另一种方式,非常不言自明:
$count = array_sum(array_map('count', $players));
答案 3 :(得分:1)
声明一个初始化为0的变量以累积元素数。然后,迭代第一个数组(包含其他数组),并为每个元素(也是一个数组)使用count()
来获取元素的数量,并将该值添加到累加器变量。
$num_players = 0;
foreach($players as $row) {
$num_players += count($row);
}
答案 4 :(得分:1)
答案 5 :(得分:1)