循环遍历数组
可以使用循环遍历数组,判断每个子数组中第二个元素是否为 "天津市",如果是,则返回该子数组中的第一个元素即可。
示例代码:
$data = [
[2, "北京市", 1],
[24, "天津市", 2]
];
foreach ($data as $item) {
if ($item[1] === "天津市") {
$result = $item[0];
break;
}
}
echo $result; // 输出 24
array_search()
可以使用 array_search()
函数来查找符合条件的子数组,并返回其下标。具体实现如下:
$data = [
[2, "北京市", 1],
[24, "天津市", 2]
];
$index = array_search(["", "天津市", ""], array_column($data, 1));
if ($index !== false) {
$result = $data[$index][0];
}
echo $result; // 输出 24
array_filter()
可以使用 array_filter()
函数将符合条件的子数组筛选出来,然后取出其中的第一个元素即可。具体实现如下:
$data = [
[2, "北京市", 1],
[24, "天津市", 2]
];
$filtered = array_filter($data, function ($item) {
return $item[1] === "天津市";
});
$result = reset($filtered)[0];
echo $result; // 输出 24
这里使用了匿名函数来作为 array_filter() 函数的回调函数,判断每个子数组中第二个元素是否为 "天津市",如果是,则将该子数组保留下来。最后通过 reset() 函数取出保留下来的第一个子数组,并返回其中的第一个元素。
性能
在数据量较小的情况下,三种方法的性能差别不大,可以根据自己的喜好和习惯来选择。但是当数据量较大时,第三种方法可能会更快一些,因为它使用了内置函数 array_filter()
和 reset()
,这些函数都是用 C 语言编写的,比使用 PHP 代码实现的循环遍历更快。而且,array_filter()
函数可以利用 PHP 内部的优化技巧,使得筛选过程更快。因此,如果数据量较大,可以尝试使用第三种方法。