Preg_replace avec des remplacements de tableaux
$string = ":abc and :def have apples.";
$replacements = array('Mary', 'Jane');
devrait devenir:
Mary and Jane have apples.
Droit maintenant, je fais comme ceci:
preg_match_all('/:(\w+)/', $string, $matches);
foreach($matches[0] as $index => $match)
$string = str_replace($match, $replacements[$index], $string);
Puis-je faire cela en un seul passage, en utilisant quelque chose comme preg_replace?
source d'informationauteur Alex
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
preg_replace_callback
avec un rappel qui consomme votre remplacement l'un après l'autre:De sortie:
De sortie:
Essayer cette
voici le résultat: http://sandbox.onlinephpfunctions.com/code/7a4c5b00f68ec40fdb35ce189d26446e3a2501c2
Pour Plusieurs et une gamme Complète de remplacement par Clé Associative vous pouvez l'utiliser pour correspondre à votre regex modèle:
*Avis, c'est bien que "_no_match_" manque la traduction, il correspondra au cours de regex, mais
préserver sa clé. Et les touches peuvent répéter de nombreuses fois.