Perform a regular expression search and replace using callbacks

# preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_array — Perform a regular expression search and replace using callbacks

### Beschreibung

function preg_replace_callback_array(
array `$pattern`,
string|array `$subject`,
int `$limit` = -1,
int `&$count` = `null`,
int `$flags` = 0
): string|array|null

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

### Parameter-Liste

`pattern`

  An associative array mapping patterns (keys) to callables (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.

### Rückgabewerte

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.

### Fehler/Exceptions

Wenn das übergebene Regex-Muster nicht zu einem gültigen Regex kompiliert werden kann, wird ein Fehler der Stufe `E_WARNING` ausgegeben.

### Changelog

Version | Beschreibung
--- | ---
7.4.0 | The `flags` parameter was added.

### Beispiele

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

### Siehe auch

- PCRE Patterns
- preg_replace_callback() - Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks
- preg_quote() - Maskiert Zeichen regulärer Ausdrücke
- preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
- preg_last_error() - Liefert den Fehlercode der letzten PCRE-RegEx-Auswertung
- Anonymous functions

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open