このコードは検索機能に属します。ユーザーは$ search_stringを入力することができ、下のコードはhtmlを文字列の周りに置いて強調表示します。検索は複数単語の検索を含むように拡張されました( 'ifs ands'を検索すると、両方の単語の検索結果のみが表示されます)。複数ワードの検索と配列の配列の置換
それは配列の配列を検索し、ネストされた配列には、概要、プロシージャ、および検証という検索フィールドが含まれます。その後、配列内の値が検索され、検索した単語が強調表示されます。
foreach ($results as $s_result => $row) {
$results[$s_result]['overview'] = str_ireplace($search_string, "<span style=\"background-color: #ff0;\">$search_string</span>", htmlspecialchars($row['overview']));
$results[$s_result]['execution'] = str_ireplace($search_string, "<span style=\"background-color: #ff0;\">$search_string</span>", htmlspecialchars($row['execution']));
$results[$s_result]['verification'] = str_ireplace($search_string, "<span style=\"background-color: #ff0;\">$search_string</span>", htmlspecialchars($row['verification']));
}
は、配列の配列を介して、検索キーワードの複数回反復することなく、どのように私は複数の単語を強調表示することができます/ユーザーが1つのパスに入り、キーワード?方法はないかもしれないが、私は簡単にその結論に来る。
foreach ($results as &$row) {
$row = str_ireplace(
$search_string,
"<span class=\"highlight\">$search_string</span>",
array_map("htmlspecialchars", $row)
);
}
注我々は、参照によって$row
を変更しているので、あなたが$results
を反復する場合には、変更内容を表示します:
あなたは、その配列を共有することはできますか? –
質問を少し説明してください。 –
質問を編集して、より明確になるようにしました。申し訳ありません。 @ SahilGulatiあなたはあなたがまだアレイを必要とする場合は、ポストを読んで、私に知らせることができますか? – baksyl