我有一个包含用户(~1M)的大型数据库,每个用户都有自己的代码。所有用户都可以使用文本发送帖子(如聊天)。我不想检查用户的任何代码是否在帖子中。
我可以构建一个数组并像这样遍历它:
// Text sent from $_POST
$text = "hey i am zlatan with code1";
// Loaded from MySQL and put into the array
$array = array('code1', 'code2');
for ($i = 0; $i < count($array); $i++)
{
if (strpos($text, $array[$i]) !== false)
{
// At least one code was found, exit loop
$foundCode = true;
break;
}
}
但我觉得在1条聊天消息中搜索1M代码的表现很糟糕。您对此有何看法以及如何改进?