3v4l.org

run code in 300+ PHP versions simultaneously
<?php function hyphenatedRanges($numbers): string { $result = []; foreach ($numbers as $i => $number) { if (isset($ref) && $number === $numbers[$i - 1] + 1) { $ref = strtok($ref, "-") . "-$number"; } else { unset($ref); $ref = $number; $result[] = &$ref; } } return implode(',', $result); } echo hyphenatedRanges([1, 2, 3, 6, 8, 9]) . "\n"; // "1-3,6,8-9" echo hyphenatedRanges([2, 4, 5, 6, 8, 10]); // "2,4-6,8,10"

preferences:
27.15 ms | 405 KiB | 5 Q