php8.5
Home/ Manual/ array / functions/ count

count

PHP function Edit on GitHub ✎

(PHP 4, PHP 5, PHP 7, PHP 8)

Counts all elements in an array or in a Countable object

Description

count(Countable|array $value, int $mode = COUNT_NORMAL): int

Counts all elements in an array when used with an array. When used with an object that implements the Countable interface, it returns the return value of the method Countable::count.

Parameters

value

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 value. Prior to PHP 8.0.0, if the parameter was neither an Array nor an Object that implements the Countable interface, 1 would be returned, unless value was null, in which case 0 would be returned.

Changelog

VersionDescription
8.0.0count() will now throw TypeError on invalid countable types passed to the value parameter.
7.2.0count() will now yield a warning on invalid countable types passed to the value parameter.

Examples

count() example

php
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
var_dump(count($b));
?>

The above example will output:

output
int(3)
int(3)

count() non Countable|array example (bad example - don't do this)

php
<?php
$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

The above example will output:

output
int(3)

Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12

Recursive count() example

php
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// recursive count
var_dump(count($food, COUNT_RECURSIVE));

// normal count
var_dump(count($food));

?>

The above example will output:

output
int(8)
int(2)

Countable object

php
<?php
class CountOfMethods implements Countable
{
    private function someMethod()
    {
    }

    public function count(): int
    {
        return count(get_class_methods($this));
    }
}

$obj = new CountOfMethods();
var_dump(count($obj));
?>

The above example will output:

output
int(2)

See Also

Source: reference/array/functions/count.xml · from the official PHP manual (php/doc-en)