数组的大小

时间:2011-03-11 06:39:16

标签: php arrays

有没有办法在不使用sizeof($array)和/或count($array)的情况下查找数组的大小?

3 个答案:

答案 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并手动计算数组中的元素数量,但我不明白你为什么要这样做,因为这样做不会比使用sizeofcount个函数。

答案 2 :(得分:2)

尽管没有必要为这件事做一个foreach或其他任何事情......但是关于array_reduce:

array_reduce($array, function($count, $element) {
    return $count + 1;
}, 0);

只是为了不同的东西:D