count
Count all elements in an array, or something in an object
Description
int count
( mixed $array_or_countable
[, int $mode
= COUNT_NORMAL
] )
For objects, if you have
SPL installed, you can hook into
count by implementing interface
Countable. The interface has exactly one method,
Countable::count, which returns the return value for the
count function.
Please see the Array
section of the manual for a detailed explanation of how arrays
are implemented and used in PHP.
Parameters
-
array_or_countable
-
An array or Countable object.
-
mode
-
If the optional mode
parameter is set to
COUNT_RECURSIVE
(or 1), count
will recursively count the array. This is particularly useful for
counting all the elements of a multidimensional array.
Caution
count can detect recursion to avoid an infinite
loop, but will emit an E_WARNING
every time it
does (in case the array contains itself more than once) and return a
count higher than may be expected.
Return Values
Returns the number of elements in array_or_countable
.
If the parameter is not an array or not an object with
implemented Countable interface,
1 will be returned.
There is one exception, if array_or_countable
is NULL
,
0 will be returned.
Caution
count may return 0 for a variable that isn't set,
but it may also return 0 for a variable that has been initialized with an
empty array. Use isset to test if a variable is set.
Examples
Example #1 count example
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count($b);
// $result == 3
$result = count(null);
// $result == 0
$result = count(false);
// $result == 1
?>
Example #2 Recursive count example
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// recursive count
echo count($food, COUNT_RECURSIVE); // output 8
// normal count
echo count($food); // output 2
?>