This is one stop global knowledge base where you can learn about all the products, solutions and support features.
(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
array_key_exists — Checks if the given key or index exists in the array
array_key_exists(string|int $key, array $array): bool
array_key_exists()
returns
true
if the given
key
is set in the array.
key
can be any value possible for an array index.
key
Value to check.
array
An array with keys to check.
Returns
true
on success or
false
on failure.
Note :
array_key_exists() will search for the keys in the first dimension only. Nested keys in multidimensional arrays will not be found.
Example #1 array_key_exists() example
<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
Example #2 array_key_exists() vs isset()
isset()
does not return
true
for array keys that correspond to a
null
value, while
array_key_exists()
does.
<?php
$search_array = array('first' => null, 'second' => 4);
// returns false
isset($search_array['first']);
// returns true
array_key_exists('first', $search_array);
?>
Note :
For backward compatibility reasons, array_key_exists() will also return
true
ifkey
is a property defined within an object given asarray
. This behaviour is deprecated as of PHP 7.4.0, and removed as of PHP 8.0.0.To check whether a property exists in an object, property_exists() should be used.
(PHP 7 >= 7.3.0, PHP 8)
array_key_first — Gets the first key of an array
array_key_first(array $array): int|string|null
Get the first key of the given
array
without affecting the internal array pointer.
array
An array.
Returns the first key of
array
if the array is not empty;
null
otherwise.
Example #1 Basic array_key_first() Usage
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
var_dump($firstKey);
?>
The above example will output:
string(1) "a"
There are several ways to provide this functionality for versions prior to PHP 7.3.0. It is possible to use array_keys() , but that may be rather inefficient. It is also possible to use reset() and key() , but that may change the internal array pointer. An efficient solution, which does not change the internal array pointer, written as polyfill:
<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
?>
(PHP 7 >= 7.3.0, PHP 8)
array_key_last — Gets the last key of an array
array_key_last(array $array): int|string|null
Get the last key of the given
array
without affecting the internal array pointer.
array
An array.
Returns the last key of
array
if the array is not empty;
null
otherwise.
(PHP 4, PHP 5, PHP 7, PHP 8)
array_keys — Return all the keys or a subset of the keys of an array
array_keys(array $array): array
array_keys(array $array, mixed $filter_value, bool $strict = false): array
array_keys()
returns the keys, numeric and string, from the
array
.
If a
filter_value
is specified, then only the keys for that value are returned. Otherwise, all the keys from the
array
are returned.
array
An array containing keys to return.
filter_value
If specified, then only keys containing this value are returned.
strict
Determines if strict comparison (===) should be used during the search.
Returns an array of all the keys in
array
.
Example #1 array_keys() example
<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
$array = array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"));
print_r(array_keys($array));
?>
The above example will output:
Array ( [0] => 0 [1] => color ) Array ( [0] => 0 [1] => 3 [2] => 4 ) Array ( [0] => color [1] => size )
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
array_map — Applies the callback to the elements of the given arrays
array_map(?callable $callback, array $array, array ...$arrays): array
array_map()
returns an
array
containing the results of applying the
callback
to the corresponding value of
array
(and
arrays
if more arrays are provided) used as arguments for the callback. The number of parameters that the
callback
function accepts should match the number of arrays passed to
array_map()
. Excess input arrays are ignored. An
ArgumentCountError
is thrown if an insufficient number of arguments is provided.
callback
A callable to run for each element in each array.
null
can be passed as a value to
callback
to perform a zip operation on multiple arrays. If only
array
is provided,
array_map()
will return the input array.
array
An array to run through the
callback
function.
arrays
Supplementary variable list of array arguments to run through the
callback
function.
Returns an array containing the results of applying the
callback
function to the corresponding value of
array
(and
arrays
if more arrays are provided) used as arguments for the callback.
The returned array will preserve the keys of the array argument if and only if exactly one array is passed. If more than one array is passed, the returned array will have sequential integer keys.
Version | Description |
---|---|
8.0.0 |
If
callback
expects a parameter to be passed by reference, this function will now emit an
E_WARNING
.
|
Example #1 array_map() example
<?php
function cube($n)
{
return ($n * $n * $n);
}
$a = [1, 2, 3, 4, 5];
$b = array_map('cube', $a);
print_r($b);
?>
This makes $b have:
Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )
Example #2 array_map() using a lambda function
<?php
$func = function(int $value): int {
return $value * 2;
};
print_r(array_map($func, range(1, 5)));
// Or as of PHP 7.4.0:
print_r(array_map(fn($value): int => $value * 2, range(1, 5)));
?>
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
Example #3 array_map() - using more arrays
<?php
function show_Spanish(int $n, string $m): string
{
return "The number {$n} is called {$m} in Spanish";
}
function map_Spanish(int $n, string $m): array
{
return [$n => $m];
}
$a = [1, 2, 3, 4, 5];
$b = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];
$c = array_map('show_Spanish', $a, $b);
print_r($c);
$d = array_map('map_Spanish', $a , $b);
print_r($d);
?>
The above example will output:
// printout of $c Array ( [0] => The number 1 is called uno in Spanish [1] => The number 2 is called dos in Spanish [2] => The number 3 is called tres in Spanish [3] => The number 4 is called cuatro in Spanish [4] => The number 5 is called cinco in Spanish ) // printout of $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) )
Usually when using two or more arrays, they should be of equal length because the callback function is applied in parallel to the corresponding elements. If the arrays are of unequal length, shorter ones will be extended with empty elements to match the length of the longest.
An interesting use of this function is to construct an array of arrays, which can be easily performed by using
null
as the name of the callback function
Example #4 Performing a zip operation of arrays
<?php
$a = [1, 2, 3, 4, 5];
$b = ['one', 'two', 'three', 'four', 'five'];
$c = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
The above example will output:
Array ( [0] => Array ( [0] => 1 [1] => one [2] => uno ) [1] => Array ( [0] => 2 [1] => two [2] => dos ) [2] => Array ( [0] => 3 [1] => three [2] => tres ) [3] => Array ( [0] => 4 [1] => four [2] => cuatro ) [4] => Array ( [0] => 5 [1] => five [2] => cinco ) )
Example #5
null
callback
with only
array
<?php
$array = [1, 2, 3];
var_dump(array_map(null, $array));
?>
The above example will output:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
Example #6 array_map() - with string keys
<?php
$arr = ['stringkey' => 'value'];
function cb1($a) {
return [$a];
}
function cb2($a, $b) {
return [$a, $b];
}
var_dump(array_map('cb1', $arr));
var_dump(array_map('cb2', $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>
The above example will output:
array(1) { ["stringkey"]=> array(1) { [0]=> string(5) "value" } } array(1) { [0]=> array(2) { [0]=> string(5) "value" [1]=> string(5) "value" } } array(1) { ["stringkey"]=> string(5) "value" } array(1) { [0]=> array(2) { [0]=> string(5) "value" [1]=> string(5) "value" } }
Example #7 array_map() - associative arrays
While array_map() does not directly support using the array key as an input, that may be simulated using array_keys() .
<?php
$arr = [
'v1' => 'First release',
'v2' => 'Second release',
'v3' => 'Third release',
];
// Note: Before 7.4.0, use the longer syntax for anonymous functions instead.
$callback = fn(string $k, string $v): string => "$k was the $v";
$result = array_map($callback, array_keys($arr), array_values($arr));
var_dump($result);
?>
The above example will output:
array(3) { [0]=> string(24) "v1 was the First release" [1]=> string(25) "v2 was the Second release" [2]=> string(24) "v3 was the Third release" }
(PHP 4, PHP 5, PHP 7, PHP 8)
array_merge — Merge one or more arrays
array_merge(array ...$arrays): array
Merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array.
If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will not overwrite the original value, but will be appended.
Values in the input arrays with numeric keys will be renumbered with incrementing keys starting from zero in the result array.
arrays
Variable list of arrays to merge.
Returns the resulting array. If called without any arguments, returns an empty array .
Version | Description |
---|---|
7.4.0 | This function can now be called without any parameter. Formerly, at least one parameter has been required. |
Example #1 array_merge() example
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
The above example will output:
Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 )
Example #2 Simple array_merge() example
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
Don't forget that numeric keys will be renumbered!
Array ( [0] => data )
If you want to append array elements from the second array to the first array while not overwriting the elements from the first array and not re-indexing, use the
+
array union operator:
<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
var_dump($result);
?>
The keys from the first array will be preserved. If an array key exists in both arrays, then the element from the first array will be used and the matching key's element from the second array will be ignored.
array(5) { [0]=> string(6) "zero_a" [2]=> string(5) "two_a" [3]=> string(7) "three_a" [1]=> string(5) "one_b" [4]=> string(6) "four_b" }
Example #3 array_merge() with non-array types
<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?>
The above example will output:
Array ( [0] => foo [1] => bar )