3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $str = "I like driving/flying/eating cars/aeroplanes/lunch"; $lines = array($str); $results = array(); while ($line = array_shift($lines)) { if (preg_match("/(\w+)(?:\/\w+)+/ui", $line, $match, PREG_OFFSET_CAPTURE)) { list($string, $offset) = $match[1]; array_push($lines, sprintf("%s%s", substr($line, 0, $offset + strlen($string)), substr($line, $offset + strlen($match[0][0])) )); array_push($lines, sprintf("%s%s", substr($line, 0, $offset), substr($line, $offset + strlen($string) + 1) )); } else { $results[] = $line; } } print_r($results);
Output for 4.3.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
Array ( [0] => I like driving cars [1] => I like driving aeroplanes [2] => I like driving lunch [3] => I like flying cars [4] => I like eating cars [5] => I like flying aeroplanes [6] => I like flying lunch [7] => I like eating aeroplanes [8] => I like eating lunch )