Menu
CoddyTech

使用 array_search 查找键

本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 18 课,共 68 课。

in_array() 可以告诉你数组中是否存在某个值,但有时你需要准确知道这个值位于哪里。array_search() 函数可以在数组中查找特定值,并返回对应的键或索引。

它的工作原理如下:

<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position;  // 输出:2
?>

这个函数接受两个参数:你要搜索的值,以及要在其中搜索的数组。找到该值时,array_search() 会返回键(对于索引数组,这是从 0 开始的数字位置)。

不过,返回的内容有一个重要区别。如果找到了这个值,你会得到对应的键。如果没有找到这个值,函数会返回 false:

<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores);    // 返回:2
$notFound = array_search(100, $scores); // 返回:false
?>

当你需要确定某个项目的位置或排名时,这个函数特别有用,例如查看玩家在排行榜中的名次,或查找特定元素的索引以便进一步处理。

challenge icon

挑战

简单

你会收到两个输入:一个 JSON 格式的产品名称数组,以及一个要搜索的产品名称。读取这两个输入,将 JSON 字符串转换为数组,使用 array_search() 查找产品在数组中的位置,并打印结果。如果找到该产品,就打印它的索引位置。如果没有找到该产品,就打印 "Product not found"。

输入格式:两行,第一行包含一个 JSON 数组(例如:["laptop","mouse","keyboard","monitor"]),第二行包含要搜索的产品名称

预期输出:产品的数字索引位置(从 0 开始),如果数组中不存在该产品,则输出文本 "Product not found"

亲手试试

<?php
// 读取输入的 JSON 数组
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);

// 读取要搜索的产品名称
$searchProduct = trim(fgets(STDIN));

// TODO: 在下方编写你的代码
// 使用 array_search() 查找产品的位置


// 输出结果
echo $result;
?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: PHP 在线编译器