有没有办法在不使用sizeof($array)
和/或count($array)
的情况下查找数组的大小?
答案 0 :(得分:4)
如果您想知道数组中的项目数,您有两个解决方案:
count()
功能 - 这是最好的主意
对于使用第二个想法的示例:
$num = 0;
foreach ($array as $item) {
$num++;
}
echo "Num of items : $num";
但是,再次:糟糕的主意!
编辑:只是为了好玩,这是循环数组的另一个例子,但是,这一次,使用array_map()
和匿名函数(需要PHP> = 5.3):
$array = array(1, 2, 3, 4, 5);
$count = 0;
array_map(function ($item) use (& $count) {
$count++;
}, $array);
echo "Num of items : $count";
这里也是一个坏主意 - 即使有趣^^
答案 1 :(得分:2)
你可能使用foreach
并手动计算数组中的元素数量,但我不明白你为什么要这样做,因为这样做不会比使用sizeof
或count
个函数。
答案 2 :(得分:2)
尽管没有必要为这件事做一个foreach或其他任何事情......但是关于array_reduce:
array_reduce($array, function($count, $element) {
return $count + 1;
}, 0);
只是为了不同的东西:D