count

Count all elements in an array, or something in an object

&reftitle.description; `int` `count` `mixed` `array_or_countable` `int` `mode` COUNT_NORMAL

Counts all elements in an array, or something in an object.

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.

&reftitle.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.

  `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.

&reftitle.returnvalues;

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.

`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.

&reftitle.changelog;

&Version; | &Description;
4.2.0 | The optional `mode` parameter was added.

&reftitle.examples;

### `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
    ?>

### 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

    ?>

&reftitle.seealso;

- `is_array`
- `isset`
- `strlen`