深入研究 PHP array_key
在 PHP 中,数组是一种非常常用的数据结构,用于存储一组数据。数组键也非常重要,因为它们可用于识别和访问数组中的特定元素。 PHP提供了很多数组相关的函数和方法,其中array_key相关的函数非常有用。在本文中,我们将深入研究 PHP array_key 相关函数,包括 array_key_exists、array_keys、array_flip、array_intersect_key、array_diff_key 和 array_walk。
1。 array_key_exists
Array_key_exists 函数用于检查数组中是否存在指定的键。其语法如下:
bool array_key_exists ( mixed $key , array $array )
其中key是要检查的键名,可以是整数、字符串等,array是要检查的数组。如果键存在,该函数返回 true,否则返回 false。例如:
$arr = array("foo" => "bar", 42 => 24);
if (array_key_exists("foo", $arr)) {
echo "键存在";
} else {
echo "键不存在";
}
上面的代码将输出“key contains”,因为数组中存在键“foo”。
2,数组键
array_keys 函数用于返回数组中的所有键名。其语法如下:
array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] )
其中,array为要搜索的数组,search_value为可选参数,用于限制返回值。如果指定了搜索值,则仅返回匹配的键名;否则返回所有键名。 Strict 也是一个可选参数。它是一个布尔值,指示搜索时是否严格匹配字面值和类型。它的默认值为 false。例如:
$arr = array("foo" => "bar", 42 => 24);
$keys = array_keys($arr);
print_r($keys);
上面的代码发出:
Array
(
[0] => foo
[1] => 42
)
因为 $arr 数组包含键“foo”和 42,所以 array_keys 函数返回它们的键名称。
三、array_flip
array_flip函数用于交换数组中的键和值。其语法如下:
array array_flip ( array $array )
其中array是要交换的数组。该函数返回一个新数组。新数组的键就是原数组的值。新数组的键是原始数组的键。例如:
$arr = array("foo" => "bar", "hello" => "world");
$flipped = array_flip($arr);
print_r($flipped);
上面的代码发出:
Array
(
[bar] => foo
[world] => hello
)
因为$arr数组中有两个键值对,即“foo”=>“bar”和“hello”=>“world”,所以array_flip函数将它们交换并返回一个新数组。
4。 array_intersect_key
array_intersect_key 函数用于返回两个或多个数组中键的交集。其语法如下:
array array_intersect_key ( array $array1 , array $array2 [, array $... ] )
其中,array1和array2是要进行交集操作的两个数组,后面的参数是可选的,表示要对多个数组进行交集操作。此函数返回一个新数组,其中包含所有数组共有的键。例如:
$arr1 = array("foo" => "bar", "hello" => "world");
$arr2 = array("foo" => "baz", "world" => "hello");
$intersect = array_intersect_key($arr1, $arr2);
print_r($intersect);
上面的代码发出:
Array
(
[foo] => bar
)
因为 $arr1 中只有键“foo”和“hello”,$arr2 中只有键“foo”和“world”,所以 array_intersect_key 函数返回一个包含键“foo”的新数组。
5。 array_diff_key
Array_diff_key 函数用于返回两个或多个数组中不同键的差异集。其语法如下:
array array_diff_key ( array $array1 , array $array2 [, array $... ] )
其中,array1和array2是要进行差分集操作的两个数组,后面的参数是可选的,表示要对多个数组进行差分集操作。此函数返回一个新数组,其中包含与所有数组不同的键。例如:
$arr1 = array("foo" => "bar", "hello" => "world");
$arr2 = array("foo" => "baz", "world" => "hello");
$diff = array_diff_key($arr1, $arr2);
print_r($diff);
上面的代码发出:
Array
(
[hello] => world
)
因为 $arr1 中只有键“foo”和“hello”,$arr2 中只有键“foo”和“world”,所以 array_diff_key 函数返回一个包含键“hello”的新数组。
6。 array_walk
Array_walk 函数用于将自定义函数应用于数组的每个元素。其语法如下:
bool array_walk ( array &$array , callable $callback [, mixed $userdata = null ] )
其中,array是要操作的数组,callback是用于对每个元素进行操作的调用函数,user data是可选参数,可以向回调函数传递任意类型的数据。除非发生错误,否则该函数返回 true。例如:
function square(&$value, $key)
{
$value = $value * $value;
}
$arr = array(1, 2, 3, 4, 5);
array_walk($arr, "square");
print_r($arr);
上面的代码发出:
Array
(
[0] => 1
[1] => 4
[2] => 9
[3] => 16
[4] => 25
)
因为 $arr 数组包含 5 个元素,即 1, 2, 3, 4, 5,所以 array_walk 函数对每个元素应用一个名为“square”的函数,该函数对每个元素进行平方并将结果存储回原始数组。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网