AJAX を利用したスマート検索エンジンを構築しています。
私はキーワードを扱うので、バックエンド スクリプトで AJAX から提供された文字列を展開します。
(文字列は検索入力フィールドの値です)
$keywords = $_POST["keywords"];
$keywords = strtolower($keywords);
$keyword = explode(" ", $keywords);
ご覧のとおり、すべてのキーワードを含む $keyword という名前の配列があります。
ここで、無関係な結果になる配列から値を削除する必要があります。より明確にするには、値の長さが 3 未満のすべての行を削除したいと考えています。
私は多くの方法でそれを試しましたが、最後のものは単純な foreach ループでした:
foreach ($keyword as $key => $value) {
if ( strlen($key[ $value ]) < 3 ) {
unset($keyword[$key]);
}
}
私はarray_filterとこれらのような関数について読みましたが、つまり、なぜこのように機能しないのか想像できません。
何かアイデアがあれば、答えを書いてください! ご清聴ありがとうございました。