2011-03-11 83 views
1

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

+4

什么,就是你不能同时使用功能的限制? – diEcho 2011-03-11 06:42:32

+2

如果已经有2个功能,为什么还要其他?你有什么问题吗? – 2011-03-11 06:44:07

+0

@diEcho。我第二个问题 – Ben 2011-03-11 06:44:23

回答

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"; 

这里也是一个坏主意 - 即使很有趣^^

2

可以使用foreach和手动计数数组中元素的个数,但我不明白为什么你会想,因为这将提供比使用无论是sizeofcount功能没有优势。

+0

没有特别的原因。我只是想一次手动完成。谢谢 – Autolycus 2011-03-11 15:13:03

2

即使没有关于做foreach或其他任何事情的问题......那么array_reduce:

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

只是为了不同的东西:d

+0

+1我总是喜欢“仅仅为了不同的东西”的答案,特别是当他们聪明时。当然PHP> = 5.3 – 2011-03-11 09:03:10