循环遍历数组

可以使用循环遍历数组,判断每个子数组中第二个元素是否为 "天津市",如果是,则返回该子数组中的第一个元素即可。
示例代码:

$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 内部的优化技巧,使得筛选过程更快。因此,如果数据量较大,可以尝试使用第三种方法。

最后修改:2023 年 05 月 28 日
如果觉得我的文章对你有用,请随意赞赏