2 回答

TA貢獻1864條經驗 獲得超6個贊
一種方法是從要替換的字符串中創(chuàng)建一個正則表達式,然后使用preg_replace_callback
將任何匹配的值轉換為大寫:
$array = [
? ? ? ? 'weizen',
? ? ? ? 'dinkel',
? ? ? ? 'gerste',
? ? ? ? 'khorasan',
? ? ? ? 'eier',
? ? ? ? 'haselnuss',
? ? ? ? 'walnuss'];
$description = "Weizenbr?tchen auf Hartweizenbasis und Eiern mit Walnusscreme und Haselnusspaste sind leckerer mit Dinkelflocken.";
$pattern = '/' . implode('|', $array) . '/iu';
echo preg_replace_callback($pattern, function ($m) { return mb_strtoupper($m[0]); }, $description);
輸出:
WEIZENbr?tchen auf HartWEIZENbasis und EIERn mit WALNUSScreme und HASELNUSSpaste sind leckerer mit DINKELflocken.

TA貢獻1877條經驗 獲得超1個贊
使用array_map將原始數組轉換為大寫并準備模式,然后使用preg_replace它:
$array = [
'weizen',
'dinkel',
'gerste',
'khorasan',
'eier',
'haselnuss',
'walnuss'];
$description = "Weizenbr?tchen auf Hartweizenbasis und Eiern mit Walnusscreme und Haselnusspaste sind leckerer mit Dinkelflocken.";
$replaces = array_map(function($v){ return strtoupper($v);}, $array);
$patterns = array_map(function($v){ return '/'.$v.'/i';},$array);
$str = preg_replace($patterns,$replaces,$description);
echo $str;
- 2 回答
- 0 關注
- 153 瀏覽
添加回答
舉報