- array_map: documentation ( source)
- preg_replace_callback: documentation ( source)
- implode: documentation ( source)
- array_keys: documentation ( source)
- array_fill: documentation ( source)
<?php
$string = 'print the imprint with the imprinted printing paper';
$replacements = array(
'print' => 'imprint',
'imprint' => 'print',
'paper' => 'machine'
);
$delimiter = '/';
$words = array_keys( $replacements);
$regex = $delimiter . '(' . implode('|', array_map( 'preg_quote', $words, array_fill( 0, count( $words), $delimiter))) . ')' . $delimiter;
$result = preg_replace_callback( $regex, function( $match) use( $replacements) {
return $replacements[$match[1]];
}, $string);
echo $result;