Your question is not very clear, but I think you mean a solution like this:
Edited: Now the hole ranges were shown and not only the specified numbers.
<?php
$string = "0605052&&-5&-7&-8";
$test="/^([0-9]+)\&+/";
preg_match($test, $string, $res);
if (isset($res[1]))
{
$nr = $res[1];
$test="/\&\-([0-9])/";
preg_match_all($test, $string, $res);
$result[] = $nr;
$nrPart = substr($nr, 0, -1);
$firstPart = substr($nr, -1);
if (isset($res[1]))
{
foreach ($res[1] as &$value)
{
if ($firstPart !== false)
{
for ($i=$firstPart+1; $i<=$value; $i++)
{
$nr = $nrPart . $i;
$result[] = $nr;
}
$firstPart = false;
}
else
{
$nr = $nrPart . $value;
$result[] = $nr;
$firstPart = $value;
}
}
}
var_dump($result);
}
?>
This delivers:
result[0] = “0605052”
result[1] = “0605053”
result[2] = “0605054”
result[3] = “0605055”
result[4] = “0605057”
result[5] = “0605058”
2
solved php need assistance with regular expression