(PHP 7)
preg_replace_callback_array — Perform a regular expression search and replace using callbacks
$patterns_and_callbacks
   , mixed $subject
   [, int $limit = -1
   [, int &$count
  ]] )The behavior of this function is similar to preg_replace_callback(), except that callbacks are executed on a per-pattern basis.
patterns_and_callbacksAn associative array mapping patterns (keys) to callbacks (values).
subjectThe string or an array with strings to search and replace.
limit
       The maximum possible replacements for each pattern in each
       subject string. Defaults to
       -1 (no limit).
      
countIf specified, this variable will be filled with the number of replacements done.
   preg_replace_callback_array() returns an array if the
   subject parameter is an array, or a string
   otherwise. On errors the return value is NULL
  
   If matches are found, the new subject will be returned, otherwise
   subject will be returned unchanged. 
  
Example #1 preg_replace_callback_array() example
<?php
$subject = 'Aaaaaa Bbb';
preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
        }
    ],
    $subject
);
?>
The above example will output:
6 matches for "a" found 3 matches for "b" found