私がやろうとしているのは、ユーザーから入力テキストを取得し (たとえば、「Java プログラマー」としましょう)、このユーザー入力を、「Java プログラマーは aいい子だ', '彼は時々ボール遊びをする', '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>';
}
}
?>