1
Я должен заменить строку с некоторым рисунком в массиве, если требуется модель существует:Использовать только preg_replace() или комбинировать preg_match() и preg_replace()?
$patterns = [
'PATTERN#1' => 'REPLACE#1',
'PATTERN#2' => 'REPLACE#2',
];
$string = 'SOME STRING TO PREG_REPLACE';
Какой путь будет быстрее:
// PREG_REPLACE ONLY FOR MATCHED PATTERN:
foreach ($patterns as $pattern => $replace) {
if (preg_match($string, $pattern)) {
preg_replace($pattern, $replace, $string);
break;
}
}
или
// PREG_REPLACE FOR ALL PATTERNS:
foreach ($patterns as $pattern => $replace) {
preg_replace($pattern, $replace, $string);
break;
}
Только «замена» будет быстрее - ей не нужно дважды сопоставлять. Вы протестировали его? Является ли более медленное решение слишком медленным? – Bergi
Почему вы «ломаете» цикл после первого шаблона? – Bergi