2011-03-11 107 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