preg_replace_callback_array

Perform a regular expression search and replace using callbacks

&reftitle.description; ``string``array``null```preg_replace_callback_array` `array` `pattern` ``string``array```subject` `int` `limit`-1 `int` `count`&null; `int` `flags` 0

The behavior of this function is similar to `preg_replace_callback`, except that callbacks are executed on a per-pattern basis.

&reftitle.parameters;

`pattern`

- An associative array mapping patterns (keys) to `callable`s (values).

`subject`

- The 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).

`count`

- If specified, this variable will be filled with the number of replacements done.

`flags`

- `flags` can be a combination of the `PREG_OFFSET_CAPTURE` and `PREG_UNMATCHED_AS_NULL` flags, which influence the format of the matches array. See the description in `preg_match` for more details.

&reftitle.returnvalues;

`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.

&reftitle.errors; &pcre.pattern.warning;
&reftitle.changelog;

&Version; | &Description;
7.4.0 | The `flags` parameter was added.

&reftitle.examples;

### `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
    );
    ?>

&example.outputs;

    6 matches for "a" found
    3 matches for "b" found

&reftitle.seealso;

- PCRE Patterns
- `preg_replace_callback`
- `preg_quote`
- `preg_replace`
- `preg_last_error`
- Anonymous functions