3v4l.org

run code in 300+ PHP versions simultaneously
<?php $sentence = '{wordone|wordtwo {wordthree|wordfour}}'; $sentences = []; for($i = 0; $i < 20; $i++) { $sentences[] = sentence_spinning($sentence); } var_dump(array_values(array_unique($sentences))); function sentence_spinning($str) { do { $str = preg_replace_callback('#\{([^{}]*)\}#', function($matches) { return explode('|', $matches[1])[mt_rand(0, substr_count($matches[1], '|'))]; }, $str, -1, $count); } while ($count !== 0); return $str; }

preferences:
33.93 ms | 402 KiB | 5 Q