Converting array elements into range in php

后端 未结 7 1921
时光说笑
时光说笑 2021-01-02 11:39

I’m working on an array of numeric values.

I have a array of numeric values as the following in PHP

11,12,15,16,17,18,22,23,24

And

7条回答
  •  不知归路
    2021-01-02 12:24

    You could do it like that:

    $numbers = [11,12,15,16,17,18,22,23,24];
    $ranges  = [];
    $start   = $end = current($numbers);
    
    foreach($numbers as $range){
        if($range - $end > 1){
            $ranges[] = ($start == $end) ? $start : $start . "-" . $end;
            $start    = $range;
        }
        $end = $range;
    }
    $ranges[] = ($start == $end) ? $start : $start . "-" . $end;
    

提交回复
热议问题