3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = '1, 4, 7, 20-25, 31, 46-48, 100'; $array = array_map('trim', explode(',', $string)); $new_array = array(); for ($i = 0; $i < count($array); $i++) { if (!is_numeric($array[$i])) { for ($j = explode('-', $array[$i])[0]; $j <= explode('-', $array[$i])[1]; $j++) array_splice($new_array, 0, 0, $j); unset($array[$i]); } } $array = array_merge($array, $new_array); sort($array); print_r($array);

preferences:
41.93 ms | 402 KiB | 5 Q