# preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_array — Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel

### Description

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

Le comportement de cette fonction est similaire à preg_replace_callback(), à l'exception que les fonctions de rappel sont exécutéees à chaque masque.

### Liste de paramètres

`pattern`

  Un tableau associatif qui établie une relation entre les masques (clés) et les fonctions de rappels callable (valeurs).

`subject`

  La chaîne de caractères ou tableau qui contient les chaîne de caractères à chercher et remplacer.

`limit`

  Le nombre maximum de remplacement pour chaque masque dans chaque chaîne de caractères `subject`. Par défaut `-1` (aucune limite).

`count`

  Si fournit, cette variable sera remplit avec le nombre de remplacement effectué.

`flags`

  `flags` peut être une combinaison des drapeaux `PREG_OFFSET_CAPTURE` et `PREG_UNMATCHED_AS_NULL`, qui influence le format du tableau de correspondances. Voir la description de preg_match() pour plus de détail.

### Valeurs de retour

preg_replace_callback_array() retourne un tableau si le paramètre `subject` est un tableau, ou sinon une chaîne de caractères. Lors d'une erreur la valeur de retour est `null`.

Si des correspondances sont trouvées, le nouveau sujet sera retourné, sinon `subject` sera retourné inchangé.

### Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une `E_WARNING` est émise.

### Historique

Version | Description
--- | ---
7.4.0 | Le paramètre `flags` a été ajouté.

### Exemples

Exemple #1 Exemple de preg_replace_callback_array()

`<?php
$subject = 'Aaaaaa Bbb';
preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo strlen($match[0]), ' correspondances de "a" trouvées', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo strlen($match[0]), ' correspondances de "b" trouvées', PHP_EOL;
}
],
$subject
);
?>`

L'exemple ci-dessus va afficher :

    6 correspondances de "a" trouvées
    3 correspondances de "b" trouvées

### Voir aussi

- Masques PCRE
- preg_replace_callback() - Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
- preg_quote() - Protection des caractères spéciaux des expressions régulières
- preg_replace() - Rechercher et remplacer par expression rationnelle standard
- preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée
- Anonymous functions