php利用array_search与array_column实现二维数组查找

1. array_search函数

array_search函数可以在数组中搜索指定的值,并返回与该值关联的键。

使用方法

使用array_search函数的语法如下:

$key = array_search($value, $array);

其中,$value参数是要搜索的值,$array参数是要搜索的数组。

功能

array_search函数会遍历数组中的每个值,如果找到与$value相等的值,就返回该值对应的键。如果找不到对应的值,则返回false。

示例

$fruits = array("apple", "banana", "orange");

$key = array_search("banana", $fruits);

echo $key; // 输出 1

在上面的例子中,我们搜索数组$fruits中的值"banana",array_search函数返回的键为1。

2. array_column函数

array_column函数可以从二维数组中返回指定键的所有值。

使用方法

使用array_column函数的语法如下:

$result = array_column($array, $column_key, $index_key);

其中,$array参数是要获取值的数组,$column_key参数是要返回的值的键,$index_key参数是要作为返回数组的键的可选参数。

功能

array_column函数会遍历二维数组中的每一行,返回指定键对应的值组成的新数组。

示例

$students = array(

array("name" => "Alice", "grade" => "A"),

array("name" => "Bob", "grade" => "B"),

array("name" => "Charlie", "grade" => "C")

);

$grades = array_column($students, "grade");

print_r($grades);

/*

输出:

Array

(

[0] => A

[1] => B

[2] => C

)

*/

在上面的例子中,我们从数组$students中获取“grade”键对应的所有值,得到的结果是一个新数组$grades。

3. 利用array_search和array_column实现二维数组查找

利用array_search和array_column函数,我们可以实现在二维数组中查找指定值的功能。

示例

$students = array(

array("name" => "Alice", "grade" => "A"),

array("name" => "Bob", "grade" => "B"),

array("name" => "Charlie", "grade" => "C")

);

$search_name = "Alice";

$key = array_search($search_name, array_column($students, "name"));

if ($key !== false) {

$student = $students[$key];

echo "学生{$student['name']}的成绩是{$student['grade']}";

} else {

echo "未找到学生{$search_name}的记录";

}

在上面的例子中,我们先使用array_column函数从二维数组$students中提取出所有的学生姓名,然后使用array_search函数查找指定姓名的学生在数组中的索引,最后根据索引找到对应的学生信息。

总结

使用array_search和array_column函数可以方便地在二维数组中查找指定值的功能。array_search函数用于查找值在数组中的键,而array_column函数用于提取二维数组中指定键的所有值。通过结合使用这两个函数,我们可以实现对二维数组的灵活查找。

后端开发标签