我要做的是从用户那里获取输入文本(例如,让我们说“Java 程序员”),并尝试将此用户输入与我存储在数组中的字符串列表相匹配,例如“Java 程序员是一个好孩子”、“他有时打球”、“Java 和狗互相讨厌”、“狗不是 Java 程序员”
我正在尝试进行单词匹配,因此程序输出数组中与用户查询中的所有单词匹配的所有字符串的列表(顺序并不重要)
所以我希望下面代码的输出是......
“Java 程序员是个好孩子”“狗不是 Java 程序员”
因为根据用户输入的查询,这些术语同时包含“java”和“程序员”
这是我写的代码,它不起作用。任何帮助都感激不尽。
<?php
$relatedsearches = array();
$querytowords = array();
$string = "Java programmer"; //GET INPUT FROM USER
$querywords = (explode(' ', $string));
foreach($querywords as $z)
{
$querytowords[] = $z;
}
//ARRAY THAT STORES MASTER LIST OF QUERIES
$listofsearhches = array('Java programmer is a good boy', 'he plays ball at times', 'java and dogs hate each other', ' dogs are not java programmers');
foreach($listofsearhches as $c)
{
for ($i=0; $i<=(count($querytowords)-1); $i++)
{
if(strpos(strtolower($c), strtolower($querytowords[$i])) === true)
{
if($i=(count($querytowords)-1))
{
$relatedsearches[] = $c;
}
} else { break; }
}
}
echo '<br>';
if(empty($relatedsearches))
{
echo 'Sorry No Matches found';
}
else
{
foreach($relatedsearches as $lister)
{
echo $lister;
echo '<br>';
}
}
?>