3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = 'hello world good morning'; $result = []; $i = 0; while (preg_match_all("/(?=\b(\w+(?: \w+){{$i}})\b)/", $string, $m)) { array_unshift($result, $m[1]); ++$i; } var_export($result);
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
array ( 0 => array ( 0 => 'hello world good morning', ), 1 => array ( 0 => 'hello world good', 1 => 'world good morning', ), 2 => array ( 0 => 'hello world', 1 => 'world good', 2 => 'good morning', ), 3 => array ( 0 => 'hello', 1 => 'world', 2 => 'good', 3 => 'morning', ), )

preferences:
74.96 ms | 407 KiB | 5 Q