2 回答
TA贡献1815条经验 获得超10个赞
您的示例工作的一种简单方法是创建输入中所有单词的数组,并分别检查每个单词。这是一个例子:
function allergen(string $value): string
{
$return = "";
$allergens = ['pszenica', 'pszenicy', 'żyto', 'żyta', 'jęczmień', 'jęczmieniem', 'jęczmienia', 'owies', 'owsem', 'owsa', 'orkisz', 'orkiszem', 'orkisza', 'jaja', 'jajka', 'jajo', 'jajecznica', 'jajeczny', 'jajeczna', 'z jajkiem', 'jajko', 'ryby', 'ryb', 'rybne', 'rybny', 'dorsz', 'dorsza', 'dorszem', 'łosoś', 'łososiem', 'łososia', 'mintaj', 'mintajem', 'mintaja', 'makrela', 'makrelą', 'makreli', 'miruna', 'miruną', 'miruny', 'pstrąg', 'pstrągiem', 'pstrąga', 'sola', 'śledź', 'śledziem', 'śledzi', 'sardynki', 'sardynka', 'sardynek', 'sardynkami', 'halibut', 'halibuta', 'halibutem', 'szczupak', 'szczupakiem', 'szczupaka', 'sandacz', 'sandaczem', 'sandacza', 'tuńczyk', 'tuńczyka', 'tuńczykiem', 'kergulena', 'kergulą', 'orzeszki', 'orzechy', 'orzech', 'orzechowy', 'orzechowe', 'orzechami', 'migdały', 'migdałami', 'migdał', 'nerkowce', 'pistacje', 'pistacjami', 'pistacji', 'migdałowe', 'płatki migdałowe', 'płatkami migdałowymi', 'seler', 'z selerem', 'selerowy', 'gorczyca', 'gorczycą', 'gorczycy', 'sezam', 'sezamowe', 'sezamu', 'sezamem', 'musztarda', 'musztardą'];
$words = explode(' ', $value); // create an array of words
foreach($words as $word) { //iterate through words
if (in_array(mb_strtolower($word), $allergens)) {
$return .= "<b>" . $word . "</b> ";
} else {
$return .= $word . " ";
}
}
return trim($return); //remove trailing space from the end
}
echo allergen('lubie takie owies'); // returns: lubie takie <b>owies</b>
TA贡献1946条经验 获得超3个赞
这可以用preg_replace()代替来完成in_array()。但是请注意,您需要为$allergens数组中的每个字符串添加分隔符。
$string = 'lubie takie owies';
$allergens = ['/pszenica/', '/pszenicy/', '/żyto/', '/żyta/', '/jęczmień/', '/jęczmieniem/', '/jęczmienia/', '/owies/', '/owsem/', '/owsa/'];
$result = preg_replace($allergens, '<b>$0</b>', $string);
var_dump($result);
- 2 回答
- 0 关注
- 111 浏览
添加回答
举报