# preg_replace_callback_array

(PHP 7)

preg_replace_callback_array — Perform a regular expression search and replace using callbacks

### 说明

preg_replace_callback_array ( array `$patterns_and_callbacks` , mixed `$subject` [, int `$limit` = -1 [, int `&$count` ]] ) : mixed

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

### 参数

`patterns_and_callbacks`

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

### 返回值

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

以上例程会输出：

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

### 参见

- PCRE Patterns
- preg_replace_callback() - 执行一个正则表达式搜索并且使用一个回调进行替换
- preg_quote() - 转义正则表达式字符
- preg_replace() - 执行一个正则表达式的搜索和替换
- preg_last_error() - 返回最后一个PCRE正则执行产生的错误代码
- Anonymous functions
- callback 类型的信息