Count - Manual - PHP

update page now
  • Downloads
  • Documentation
  • Get Involved
  • Help
  • PHP 8.5
Search docs Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Supported Protocols and Wrappers Security Introduction General considerations Installed as CGI binary Installed as an Apache module Session Security Filesystem Security Database Security Error Reporting User Submitted Data Hiding PHP Keeping Current Features HTTP authentication with PHP Cookies Sessions Handling file uploads Using remote files Connection handling Persistent Database Connections Command line usage Garbage Collection DTrace Dynamic Tracing Function Reference Affecting PHP's Behaviour Audio Formats Manipulation Authentication Services Command Line Specific Extensions Compression and Archive Extensions Cryptography Extensions Database Extensions Date and Time Related Extensions File System Related Extensions Human Language and Character Encoding Support Image Processing and Generation Mail Related Extensions Mathematical Extensions Non-Text MIME Output Process Control Extensions Other Basic Extensions Other Services Search Engine Extensions Server Specific Extensions Session Extensions Text Processing Variable and Type Related Extensions Web Services Windows Only Extensions XML Manipulation GUI Extensions Keyboard Shortcuts? This help j Next menu item k Previous menu item g p Previous man page g n Next man page G Scroll to bottom g g Scroll to top g h Goto homepage g s Goto search(current page) / Focus search box current » « compact
  • PHP Manual
  • Function Reference
  • Variable and Type Related Extensions
  • Arrays
  • Array Functions
Change language: English German Spanish French Italian Japanese Brazilian Portuguese Russian Turkish Ukrainian Chinese (Simplified) Other count

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

countCounts 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

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

Examples

Example #1 count() example

<?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:

int(3) int(3)

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

<?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:

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

Example #3 Recursive count() example

<?php$food = array('fruits' => array('orange', 'banana', 'apple'), 'veggie' => array('carrot', 'collard', 'pea'));// recursive countvar_dump(count($food, COUNT_RECURSIVE));// normal countvar_dump(count($food));?>

The above example will output:

int(8) int(2)

Example #4 Countable object

<?phpclass 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:

int(2)

See Also

  • is_array() - Finds whether a variable is an array
  • isset() - Determine if a variable is declared and is different than null
  • empty() - Determine whether a variable is empty
  • strlen() - Get string length
  • is_countable() - Verify that the contents of a variable is a countable value
  • Arrays

Found A Problem?

Learn How To Improve This Page • Submit a Pull Request • Report a Bug +add a note

User Contributed Notes 6 notes

up down 145 onlyranga at gmail dot com11 years ago [Editor's note: array at from dot pl had pointed out that count() is a cheap operation; however, there's still the function call overhead.] If you want to run through large arrays don't use count() function in the loops , its a over head in performance, copy the count() value into a variable and use that value in loops for a better performance. Eg: // Bad approach for($i=0;$i<count($some_arr);$i++) { // calculations } // Good approach $arr_length = count($some_arr); for($i=0;$i<$arr_length;$i++) { // calculations } up down 3 lucasfsmartins at gmail dot com6 years ago If you are on PHP 7.2+, you need to be aware of "Changelog" and use something like this: <?php $countFruits = is_array($countFruits) || $countFruits instanceof Countable ? count($countFruits) : 0; ?> You can organize your code to ensure that the variable is an array, or you can extend the Countable so that you don't have to do this check. up down 12 danny at dannymendel dot com18 years ago I actually find the following function more useful when it comes to multidimension arrays when you do not want all levels of the array tree. // $limit is set to the number of recursions <?php function count_recursive ($array, $limit) { $count = 0; foreach ($array as $id => $_array) { if (is_array ($_array) && $limit > 0) { $count += count_recursive ($_array, $limit - 1); } else { $count += 1; } } return $count; } ?> up down 10 alexandr at vladykin dot pp dot ru19 years ago My function returns the number of elements in array for multidimensional arrays subject to depth of array. (Almost COUNT_RECURSIVE, but you can point on which depth you want to plunge). <?php function getArrCount ($arr, $depth=1) { if (!is_array($arr) || !$depth) return 0; $res=count($arr); foreach ($arr as $in_ar) $res+=getArrCount($in_ar, $depth-1); return $res; } ?> up down 2 pied-pierre10 years ago A function of one line to find the number of elements that are not arrays, recursively : function count_elt($array, &$count=0){ foreach($array as $v) if(is_array($v)) count_elt($v,$count); else ++$count; return $count; } up down 0 Anonymous6 years ago For a Non Countable Objects $count = count($data); print "Count: $count\n"; Warning: count(): Parameter must be an array or an object that implements Countable in example.php on line 159 #Quick fix is to just cast the non-countable object as an array.. $count = count((array) $data); print "Count: $count\n"; Count: 250 +add a note
  • Array Functions
    • array
    • array_​all
    • array_​any
    • array_​change_​key_​case
    • array_​chunk
    • array_​column
    • array_​combine
    • array_​count_​values
    • array_​diff
    • array_​diff_​assoc
    • array_​diff_​key
    • array_​diff_​uassoc
    • array_​diff_​ukey
    • array_​fill
    • array_​fill_​keys
    • array_​filter
    • array_​find
    • array_​find_​key
    • array_​first
    • array_​flip
    • array_​intersect
    • array_​intersect_​assoc
    • array_​intersect_​key
    • array_​intersect_​uassoc
    • array_​intersect_​ukey
    • array_​is_​list
    • array_​key_​exists
    • array_​key_​first
    • array_​key_​last
    • array_​keys
    • array_​last
    • array_​map
    • array_​merge
    • array_​merge_​recursive
    • array_​multisort
    • array_​pad
    • array_​pop
    • array_​product
    • array_​push
    • array_​rand
    • array_​reduce
    • array_​replace
    • array_​replace_​recursive
    • array_​reverse
    • array_​search
    • array_​shift
    • array_​slice
    • array_​splice
    • array_​sum
    • array_​udiff
    • array_​udiff_​assoc
    • array_​udiff_​uassoc
    • array_​uintersect
    • array_​uintersect_​assoc
    • array_​uintersect_​uassoc
    • array_​unique
    • array_​unshift
    • array_​values
    • array_​walk
    • array_​walk_​recursive
    • arsort
    • asort
    • compact
    • count
    • current
    • end
    • extract
    • in_​array
    • key
    • key_​exists
    • krsort
    • ksort
    • list
    • natcasesort
    • natsort
    • next
    • pos
    • prev
    • range
    • reset
    • rsort
    • shuffle
    • sizeof
    • sort
    • uasort
    • uksort
    • usort
  • Deprecated
    • each
To Top ↑ and ↓ to navigate • Enter to select • Esc to close • / to open Press Enter without selection to search using Google

Từ khóa » đếm Sub