This is one stop global knowledge base where you can learn about all the products, solutions and support features.
(PHP 4, PHP 5, PHP 7, PHP 8)
count — Counts all elements in an array or in a Countable object
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() .
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.
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.
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.
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.
|
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) int(0) int(1)
Output of the above example in PHP 7.2:
int(3) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 int(0) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 int(1)
Output of the above example in PHP 8:
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 count
var_dump(count($food, COUNT_RECURSIVE));
// normal count
var_dump(count($food));
?>
The above example will output:
int(8) int(2)
Example #4 Countable object
<?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:
int(2)
(PHP 4, PHP 5, PHP 7, PHP 8)
current — Return the current element in an array
current(array|object $array): mixed
Every array has an internal pointer to its "current" element, which is initialized to the first element inserted into the array.
array
The array.
The
current()
function simply returns the value of the array element that's currently being pointed to by the internal pointer. It does not move the pointer in any way. If the internal pointer points beyond the end of the elements list or the array is empty,
current()
returns
false
.
This function may return Boolean
false
, but may also return a non-Boolean value which evaluates to
false
. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.
Version | Description |
---|---|
8.1.0 | Calling this function on object s is deprecated. Either use get_mangled_object_vars() on the object first, or use ArrayIterator . |
Example #1 Example use of current() and friends
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
$arr = array();
var_dump(current($arr)); // bool(false)
$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>
Note : The results of calling current() on an empty array and on an array, whose internal pointer points beyond the end of the elements, are indistinguishable from a bool
false
element. To properly traverse an array which may containfalse
elements, see the foreach control structure. To still use current() and properly check if the value is really an element of the array, the key() of the current() element should be checked to be strictly different fromnull
.
(PHP 4, PHP 5, PHP 7)
each — Return the current key and value pair from an array and advance the array cursor
This function has been DEPRECATED as of PHP 7.2.0, and REMOVED as of PHP 8.0.0. Relying on this function is highly discouraged.
each(array|object &$array): array
Return the current key and value pair from an array and advance the array cursor.
After each() has executed, the array cursor will be left on the next element of the array, or past the last element if it hits the end of the array. You have to use reset() if you want to traverse the array again using each.
array
The input array.
Returns the current key and value pair from the array
array
. This pair is returned in a four-element array, with the keys
0
,
1
,
key
, and
value
. Elements
0
and
key
contain the key name of the array element, and
1
and
value
contain the data.
If the internal pointer for the array points past the end of the array contents,
each()
returns
false
.
Example #1 each() examples
<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>
$bar now contains the following key/value pairs:
Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 )
<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>
$bar now contains the following key/value pairs:
Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert )
each() is typically used in conjunction with list() to traverse an array, here's an example:
Example #2 Traversing an array with each()
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
The above example will output:
a => apple b => banana c => cranberry
Because assigning an array to another variable resets the original array's pointer, our example above would cause an endless loop had we assigned $fruit to another variable inside the loop.
each() will also accept objects, but may return unexpected results. It's therefore not recommended to iterate though object properties with each() .
(PHP 4, PHP 5, PHP 7, PHP 8)
end — Set the internal pointer of an array to its last element
end(array|object &$array): mixed
end()
advances
array
's internal pointer to the last element, and returns its value.
array
The array. This array is passed by reference because it is modified by the function. This means you must pass it a real variable and not a function returning an array because only actual variables may be passed by reference.
Returns the value of the last element or
false
for empty array.
Version | Description |
---|---|
8.1.0 | Calling this function on object s is deprecated. Either use get_mangled_object_vars() on the object first, or use ArrayIterator . |
Example #1 end() example
<?php
$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry
?>