3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $str = "0/1/2/3/4/5/6/7/8/9 a/b/c/d/e/f"; $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 - 7.1.0
Array ( [0] => 0 a [1] => 0 b [2] => 1 a [3] => 0 c [4] => 1 b [5] => 2 a [6] => 0 d [7] => 1 c [8] => 2 b [9] => 3 a [10] => 0 e [11] => 0 f [12] => 1 d [13] => 2 c [14] => 3 b [15] => 4 a [16] => 1 e [17] => 1 f [18] => 2 d [19] => 3 c [20] => 4 b [21] => 5 a [22] => 2 e [23] => 2 f [24] => 3 d [25] => 4 c [26] => 5 b [27] => 6 a [28] => 3 e [29] => 3 f [30] => 4 d [31] => 5 c [32] => 6 b [33] => 7 a [34] => 4 e [35] => 4 f [36] => 5 d [37] => 6 c [38] => 7 b [39] => 8 a [40] => 9 a [41] => 5 e [42] => 5 f [43] => 6 d [44] => 7 c [45] => 8 b [46] => 9 b [47] => 6 e [48] => 6 f [49] => 7 d [50] => 8 c [51] => 9 c [52] => 7 e [53] => 7 f [54] => 8 d [55] => 9 d [56] => 8 e [57] => 8 f [58] => 9 e [59] => 9 f )