我想要做的就是從用戶的輸入文本(例如讓我們說「Java程序員」),並試圖以匹配該用戶輸入做出「相關的術語」代碼我存儲在一個數組中的字符串列表,例如'Java程序員是一個好孩子','他有時玩球','java和狗互相憎恨','狗不是java程序員'無法使用strpos在PHP工作
I 「M試圖做詞匹配這樣的程序輸出數組中的匹配用戶查詢所有字(順序並不重要)
所以我想下面的代碼的輸出是所有字符串列表.. 。
「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>';
}
}
?>
解釋什麼行不通 –