欢迎访问宙启技术站
智能推送

PHP函数:array_keys-返回数组中所有键名或者键名的子集

发布时间:2023-06-26 09:40:51

PHP 中的 array_keys() 函数是一个很常用的函数,可以用来返回数组中的所有键名或者指定键名的子集。在开发中,常常使用这个函数来快速获取数组的键名,从而按需求对数组进行操作。本文将详细介绍 array_keys() 函数的语法和用法,以便大家能够更好地掌握它的使用。

array_keys() 函数语法

array_keys(array,search_value,strict)

参数:

array :必须,规定要检查的数组。

search_value :可选,规定要搜索的值。

strict :可选,如果找到时将比较类型(即使用 === 来比较)。默认值为 false,即只比较值的类型。

返回值:

返回一个包含数组中所有键名的新数组,如果指定了一个搜索值,则返回所有键名,其值等于搜索值的值。如果找不到,则返回一个空数组。

常用示例:

示例1

<?php

// 定义一个数组

$arr=array("张三"=>"20","李四"=>"15","王五"=>"30");

// 获取数组中所有的键名,并输出

print_r(array_keys($arr));

?>

输出结果:

Array ( [0] => 张三 [1] => 李四 [2] => 王五 )

示例2

<?php

// 定义一个数组

$arr=array("name"=>"张三","age"=>"20","sex"=>"男");

// 获取数组中键名为 name 和 age 的子集

print_r(array_keys($arr,"name"));

print_r(array_keys($arr,"age"));

?>

输出结果:

Array ( [0] => name )

Array ( [0] => age )

示例3

<?php

// 定义一个包含重复键名的数组

$arr=array("name"=>"张三","age"=>"20","name"=>"李四","sex"=>"男");

// 获取数组中所有的键名,并输出

print_r(array_keys($arr));

?>

输出结果:

Array ( [0] => name [1] => age [2] => sex )

array_keys() 函数的使用技巧

array_keys() 函数非常实用,可以用来获取数组中所有的键名或者指定的键名子集。在实际应用中,经常使用该函数来实现许多常用的功能。下面介绍一些实用的技巧,以便大家更好地使用该函数。

1.获取数组中除了某个键名的所有键名

如果要获取数组中除了某个键名的所有键名,可以使用 array_diff() 函数。array_diff() 函数用于返回一个数组,该数组包含在第一个参数中但不在其他参数中的值。

示例:

<?php

// 定义一个数组

$arr=array("name"=>"张三","age"=>"20","sex"=>"男");

// 获取数组中除了键名为 name 的键名之外,其他的所有键名,并输出

print_r(array_diff(array_keys($arr),array("name")));

?>

输出结果:

Array ( [1] => age [2] => sex )

2.获取数组中某个键名的值

如果要获取数组中某个键名的值,可以使用 array_values() 函数来获取该数组中所有的值。array_values() 函数用于返回数组中所有的值,并以数字索引的方式重新排序这些值,同时保持关联数组的键名不变。

示例:

<?php

// 定义一个数组

$arr=array("name"=>"张三","age"=>"20","sex"=>"男");

// 获取数组中键名为 name 的键所对应的值,并输出

print_r(array_values(array_intersect_key($arr,array_flip(array("name")))));

?>

输出结果:

Array ( [0] => 张三 )

3.使用 array_keys() 函数来合并两个数组

如果要合并两个数组,可以使用 array_push() 函数来把一个数组追加到另一个数组中。这种方式需要使用 array_keys() 函数来获取第二个数组中的所有键名,然后再使用循环遍历每个键名,并把对应的值添加到第一个数组中。

示例:

<?php

// 定义两个数组

$arr1=array("name"=>"张三","age"=>"20");

$arr2=array("name"=>"李四","sex"=>"男");

// 获取第二个数组中的所有键名

$keys=array_keys($arr2);

// 遍历每个键名,并把对应的值添加到第一个数组中

foreach($keys as $key){

    $arr1[$key]=$arr2[$key];

}

// 输出合并后的数组

print_r($arr1);

?>

输出结果:

Array ( [name] => 李四 [age] => 20 [sex] => 男 )

array_keys() 函数的注意事项

1.返回所有键名的数组是有序的

array_keys() 函数返回的包含所有键名的数组是有序的,其顺序是数组中键出现的顺序。

2.同一个键名只会出现一次

如果数组中有重复的键名,array_keys() 函数只会返回该键名出现的第一个位置的索引。

本文介绍了 PHP 中的 array_keys() 函数的用法和注意事项,包括其语法、返回值、常用示例、使用技巧和注意事项等。array_keys() 函数作为 PHP 中的常用函数之一,可以帮助开发者快速获取数组中的键名,从而实现更加灵活高效的数组操作。