php用大写单词替换描述中的特定单词,并在其中循环浏览

问题描述 投票:1回答:2

需要用大写搜索词替换针对数组进行测试的字符串中的所有当前词。

我现在坚持正确的循环。

我的代码:

   $array = [
        'weizen',
        'dinkel',
        'gerste',
        'khorasan',
        'eier',
        'haselnuss',
        'walnuss'];

   $description = "Weizenbrötchen auf Hartweizenbasis und Eiern mit Walnusscreme und Haselnusspaste sind leckerer mit Dinkelflocken."

foreach($array as $item) {
if (strpos($description, $item) !== false) {
   // $description;
 echo 
 str_replace($item, mb_strtoupper($item), $description);   
}
}

实际结果:“WEIZENbrötchenAUF Hartweizenbasis UND Eiern MIT Walnusscreme UND Haselnusspaste信德leckerer MITDinkelflocken.Weizenbrötchen奥夫Hartweizenbasis UND EIERn MIT Walnusscreme UND Haselnusspaste信德leckerer MITDinkelflocken.Weizenbrötchen奥夫Hartweizenbasis UND Eiern MIT WALNUSScreme UND Haselnusspaste信德leckerer MITDinkelflocken.Weizenbrötchen奥夫Hartweizenbasis UND Eiern MIT Walnusscreme和HASELNUS Spaste犯罪的Deckelflocken先生。

所需结果:

[WEIZENbrötchenauf HartWEIZENbasis and Eiern mit WALNUScreme和HASELNUSSpaste sind lererer mit DINKELflocken。

需要用大写搜索词替换针对数组进行测试的字符串中的所有当前词。我现在坚持正确的循环。我的代码:$ array = ['weizen','...

php string foreach str-replace
2个回答
0
投票

使用array_map将原始数组转换为大写字母并准备模式,然后使用preg_replace进行操作:


0
投票

一种方法是在要替换的字符串中制作一个正则表达式,然后使用preg_replace_callback将所有匹配的值转换为大写:

© www.soinside.com 2019 - 2024. All rights reserved.