Realiza pesquisa e substituição em expressão regular usando chamadas de retorno

# preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_array — Realiza pesquisa e substituição em expressão regular usando chamadas de retorno

### Descrição

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

O comportamento desta função é similar a preg_replace_callback(), exceto que chamadas de retorno são executada para cada expressão.

### Parâmetros

`pattern`

  Um array associativo mapeando expressões (chaves) a funções de retorno do tipo callable (valores).

`subject`

  A string ou um array com strings para pesquisa e substituição.

`limit`

  O número máximo de substituições para cada expressão em cada string de entrada do parâmetro `subject`. O padrão é `-1` (sem limite).

`count`

  Se especificada, esta variável será preenchida com o número de substituições realizadas.

`flags`

  `flags` pode ser uma combinação das opções `PREG_OFFSET_CAPTURE` e `PREG_UNMATCHED_AS_NULL`, que influenciam o formato do array de correspondências. Consulte a descrição em preg_match() para mais detalhes.

### Valor Retornado

preg_replace_callback_array() retorna um array se o parâmetro `subject` for um array, ou uma string caso contrário. Em caso de erros, o valor de retorno é `null`

Se corresponências forem encontradas, a nova string será retornada, caso contrário `subject` será retornado sem alteração.

### Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um `E_WARNING` será emitido.

### Registro de Alterações

Versão | Descrição
--- | ---
7.4.0 | O parâmetro `flags` foi adicionado.

### Exemplos

Exemplo #1 Exemplo de preg_replace_callback_array()

    <?php
    $subject = 'Aaaaaa Bbb';

    preg_replace_callback_array(
        [
            '~[a]+~i' => function ($match) {
                echo strlen($match[0]), ' correspondências a "a" encontradas', PHP_EOL;
            },
            '~[b]+~i' => function ($match) {
                echo strlen($match[0]), ' correspondências a "b" encontradas', PHP_EOL;
            }
        ],
        $subject
    );
    ?>

O exemplo acima produzirá:

    6 correspondências a "a" encontradas
    3 correspondências a "b" encontradas

### Veja Também

- Expressões Regulares PCRE
- preg_replace_callback() - Executa uma busca por expressão regular e substitui usando uma chamada de retorno
- preg_quote() - Escapa caracteres de expressão regular
- preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
- preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada
- Funções Anônimas

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