Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Форматирование последовательности чисел


Автор: atlant1s 11.2.2014, 21:37
Здравствуйте. Имеется массив чисел, например:
Код

$numbers = array (1, 2, 3, 4, 5, 6, 7, 8);

Необходимо представить это в виде строки:
1-8

При этом, если будет такой массив:
Код

$numbers = array (1, 2, 5, 6, 7, 8, 10);

тогда формировать строку:
1-2, 5-8, 10

Как можно реализовать сравнение?

Автор: igorold 12.2.2014, 06:19
Код

$numbers = array (1, 2, 5, 6, 7, 8, 10);
//$numbers = array (1, 2, 3, 4, 5, 6, 7, 8);
$fl = 0;
$line = $numbers[0];
$i = 0;
for ($i = 1; $i < count($numbers);$i++)
{
    if ($numbers[$i]-$numbers[$i-1]==1)
    {
        $fl = 1;
        continue;
    }
    else
    {
        if ($fl == 1)
            $line .= "-".$numbers[$i-1].",".$numbers[$i];
        else
            $line .= ",".$numbers[$i];
        $fl = 0;
    }
}
if  ($fl == 1) $line .= "-".$numbers[$i-1];

echo $line."\n";



Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Форматирование-последовательности-чисел-id52fa6e47ae20150e398b4567#findElement_E7045_52fae857ae2015d02ad39bf3_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)