3v4l.org

run code in 300+ PHP versions simultaneously
<?php $myVar = 'essa pizza é muito gostosa, gostosa, gostosa, gosto'; $myWords = [ ['sabor', 'gosto', 'delicia'], ['saborosa', 'gostosa', 'deliciosa'], ]; $grouped = []; $flipped = []; foreach ($myWords as $row) { $grouped[] = '(' . implode('|', $row) . ')'; $flipped[] = array_flip($row); } $pattern = '/\b(?:' . implode('|', $grouped) . ')\b/'; var_export( preg_replace_callback( $pattern, function($m) use ($flipped) { array_shift($m); foreach ($m as $i => $captured) { if ($captured) { unset($flipped[$i][$captured]); return array_rand($flipped[$i]); } } }, $myVar ) );
Output for 7.3.15, 7.4.3 - 7.4.4, 8.0.0
'essa pizza é muito deliciosa, saborosa, deliciosa, sabor'
Output for 7.3.19, 7.4.13
'essa pizza é muito saborosa, saborosa, deliciosa, delicia'
Output for 7.3.21, 7.4.1, 7.4.8, 7.4.12
'essa pizza é muito saborosa, deliciosa, saborosa, sabor'
Output for 7.4.0, 7.4.11
'essa pizza é muito saborosa, saborosa, saborosa, delicia'
Output for 7.3.7, 7.3.25, 7.4.7, 7.4.10
'essa pizza é muito deliciosa, deliciosa, saborosa, sabor'
Output for 7.3.6, 7.3.9, 7.4.6, 7.4.9
'essa pizza é muito saborosa, deliciosa, saborosa, delicia'
Output for 7.3.17, 7.4.5
'essa pizza é muito deliciosa, deliciosa, deliciosa, delicia'
Output for 7.4.2
'essa pizza é muito deliciosa, deliciosa, deliciosa, sabor'
Output for 7.3.4, 7.3.8, 7.3.14, 7.3.24
'essa pizza é muito saborosa, deliciosa, deliciosa, sabor'
Output for 7.3.5, 7.3.10, 7.3.22 - 7.3.23
'essa pizza é muito saborosa, saborosa, deliciosa, sabor'
Output for 7.3.13, 7.3.20
'essa pizza é muito deliciosa, saborosa, deliciosa, delicia'
Output for 7.3.2 - 7.3.3, 7.3.18
'essa pizza é muito deliciosa, saborosa, saborosa, sabor'
Output for 7.3.16
'essa pizza é muito saborosa, deliciosa, deliciosa, delicia'
Output for 7.3.1, 7.3.12
'essa pizza é muito deliciosa, deliciosa, saborosa, delicia'
Output for 7.3.0, 7.3.11
'essa pizza é muito saborosa, saborosa, saborosa, sabor'

preferences:
60.76 ms | 425 KiB | 5 Q