3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = 'A1-3, A14, 5B-7'; $result = []; foreach (explode(', ', $string) as $value) { if (sscanf($value, '%[A-Z]%d-%d', $letter, $low, $high) === 3) { for ($x = $low; $x <= $high; ++$x) { $result[] = $letter . $x; } } elseif (sscanf($value, '%d%[A-Z]-%d', $low, $letter, $high) === 3) { for ($x = $low; $x <= $high; ++$x) { $result[] = $x . $letter; } } else { $result[] = $value; } } var_export($result);

preferences:
33.92 ms | 406 KiB | 5 Q