Applies the user-defined
callback
function to each element of the
array
array.
array_walk()
is not affected by the internal array pointer of
array
.
array_walk()
will walk through the entire array regardless of pointer position.
Parameters
array
The input array.
callback
Typically,
callback
takes on two parameters. The
array
parameter's value being the first, and the key/index second.
Note
:
If
callback
needs to be working with the actual values of the array, specify the first parameter of
callback
as a reference. Then, any changes made to those elements will be made in the original array itself.
Note
:
Many internal functions (for example
strtolower()
) will throw a warning if more than the expected number of argument are passed in and are not usable directly as a
callback
.
Only the values of the
array
may potentially be changed; its structure cannot be altered, i.e., the programmer cannot add, unset or reorder elements. If the callback does not respect this requirement, the behavior of this function is undefined, and unpredictable.
arg
If the optional
arg
parameter is supplied, it will be passed as the third parameter to the
callback
.
Return Values
Returns
true
.
Errors/Exceptions
As of PHP 7.1.0, an
ArgumentCountError
will be thrown if the
callback
function requires more than 2 parameters (the value and key of the array member), or more than 3 parameters if the
arg
is also passed. Previously, in this case an error of level E_WARNING would be generated each time
array_walk()
calls
callback
.
Changelog
Version
Description
8.0.0
If
callback
expects the second or third parameter to be passed by reference, this function will now emit an
E_WARNING
.
Examples
Example #1
array_walk()
example
<?php$fruits=array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");functiontest_alter(&$item1,$key,$prefix){$item1="$prefix: $item1";}functiontest_print($item2,$key){echo"$key. $item2\n";}echo"Before ...:\n";array_walk($fruits,'test_print');array_walk($fruits,'test_alter','fruit');echo"... and after:\n";array_walk($fruits,'test_print');?>
The above example will output:
Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple
Example #2
array_walk()
example using anonymous function
Applies the user-defined
callback
function to each element of the
array
. This function will recurse into deeper arrays.
Parameters
array
The input array.
callback
Typically,
callback
takes on two parameters. The
array
parameter's value being the first, and the key/index second.
Note
:
If
callback
needs to be working with the actual values of the array, specify the first parameter of
callback
as a reference. Then, any changes made to those elements will be made in the original array itself.
arg
If the optional
arg
parameter is supplied, it will be passed as the third parameter to the
callback
.
Creates an array containing variables and their values.
For each of these,
compact()
looks for a variable with that name in the current symbol table and adds it to the output array such that the variable name becomes the key and the contents of the variable become the value for that key. In short, it does the opposite of
extract()
.
Note
:
Before PHP 7.3, any strings that are not set will silently be skipped.
Parameters
var_name
var_names
compact()
takes a variable number of parameters. Each parameter can be either a string containing the name of the variable, or an array of variable names. The array can contain other arrays of variable names inside it;
compact()
handles it recursively.
Return Values
Returns the output array with all the variables added to it.
Errors/Exceptions
compact()
issues an E_NOTICE level error if a given string refers to an unset variable.
Changelog
Version
Description
7.3.0
compact()
now issues an E_NOTICE level error if a given string refers to an unset variable. Formerly, such strings have been silently skipped.
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.
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 countvar_dump(count($food,COUNT_RECURSIVE));// normal countvar_dump(count($food));?>