仅使用preg_replace()或组合preg_match()和preg_replace()?

I'm need to replace string with some pattern in array if needed pattern exists:

$patterns = [
   'PATTERN#1' => 'REPLACE#1',
   'PATTERN#2' => 'REPLACE#2',
];

$string = 'SOME STRING TO PREG_REPLACE';

Which way will be faster:

// PREG_REPLACE ONLY FOR MATCHED PATTERN:
foreach ($patterns as $pattern => $replace) {
    if (preg_match($string, $pattern)) {
        preg_replace($pattern, $replace, $string);
        break;
    }
}

or

// PREG_REPLACE FOR ALL PATTERNS:
foreach ($patterns as $pattern => $replace) {
    preg_replace($pattern, $replace, $string);
    break;
}

preg_replace takes array arguments for pattern and replacement.

preg_replace(array_keys($patters), array_values($patterns), $string);