gpt4 book ai didi

php - 在 PHP 中,在数组中搜索包含子字符串的值的快速方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 13:36:47 26 4
gpt4 key购买 nike

我有一组从 Web 服务中收集的按字母顺序排序的街道名称。该数组存在于服务器端。

在客户端,用户开始输入他居住的街道名称,AJAX 用于返回与部分街道名称最接近匹配的列表,加上数组中接下来的 9 个街道名称(列表在他打字时更新)。

例如,如果用户键入“al”,我希望结果如下所示:

  • 奥尔巴尼高速公路
  • 阿尔本斯谷
  • 阿尔卡斯顿路
  • 亚历克斯伍德博士
  • 爱丽丝路
  • 阿拉瓦CT
  • 艾伦路
  • 允许 Pl
  • 奥尔伍德大道
  • 阿罗拉街
  • 阿曼达博士

这是我的尝试:

$matches = array();
for($i = 0; $i < count($streetNames); $i++)
{
if( (stripos($streetNames, $input) === 0 && count($matches) == 0) || count($matches) < 10 ){
$matches[] = $streetNames[$i];
} else {
break;
}
}

还有其他人知道更快的方法吗?

请注意:我无法控制如何从数据库中获取此列表 - 它来自外部网络服务。

最佳答案

使用preg_grep() :

$matches = preg_grep('/al/', $streetNames);

注意:像您这样的方法将是暴力搜索。如果您要搜索大量名称(数十万)或搜索大量次数,那么您可能需要更好的东西。然而,对于小型数据集,这很好。

关于php - 在 PHP 中,在数组中搜索包含子字符串的值的快速方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com