首页 > 解决方案 > 检查字符串是否存在于两个字符串列表中(用逗号分隔)

问题描述

我想检查给定的 2 字符值(我的输入$string:)是否存在于我的两个单独列表中的任何一个中,可能的匹配值:

一个列表是动态的(将从我的数据库中读取),其中的值用逗号分隔,每个逗号后有空格:

例如:

$dynamic_list="AA, AB, BA"
$dynamic_list="BC"
$dynamic_list="" (Empty)

第二个列表是我自己维护的静态列表,应该在脚本本身内。

我不确定如何构建它。也许只是定义一个变量,如:

$static_list="MC,JL,EO";

如果字符串匹配任何这些列表中的任何字符串,我只想输出该字符串,否则输出“不匹配”。

什么是最好和最快的方法来做到这一点?

标签: phpstringcomparison

解决方案


使用字符串使用的相同分隔符连接两个字符串,并正常检查。

执行额外的字符串或数组操作是不必要的开销。

代码:(演示

$dynamic_list = "AA, AB, BA";
$static_list = "MC,JL,EO";

$search = "JL";

if (strpos($dynamic_list . ',' . $static_list, $search) !== false) {
    echo 'found';
} else {
    echo 'not found';
}

但是,实际上,您应该首先检查静态字符串。如果静态字符串中没有匹配项,则只需费心访问数据库即可。

至于查询,您可能会计算找到搜索字符串的行数LOCATE()- 因为您不需要数据,只需确认匹配即可。


推荐阅读