PHP:如何在值的间隙处分割数组


PHP: How do I split an array at a gap in values?

我有一个整数数组,其中有一个换行符(甚至可能有多个换行符),我需要在换行符存在的地方拆分数组,以便:

$input = (1,2,3,6,7,8,11,12,13)
$output[1] = (1,2,3)
$output[2] = (6,7,8)
$output[3] = (11,12,13)

我正在处理一个相当大的数据集(时间),所以内存优化对我来说是一个棘手的问题($i++有点棘手)。

谢谢你的帮助!


更多信息:

我从一个大的时间范围开始(开始和结束的strtotime/60值),因此我的原始数组包含在问题的时间范围内的多少分钟。由于有些人可能只注册了这段时间的一部分,所以我减去了已经覆盖的值,留下了一个需要填充的时间数组。我希望将它们解析为多个数组(我实际上只需要最小值和最大值,但我可以很容易地隔离它们),以便我可以使用它们来突出显示打开时间。希望这不会让你太困惑-感谢所有已经回复的人!

问得好。这段代码将在每次数字序列中有一个中断时创建一个新的子数组(如您的测试用例所示)。

<?php
$input = array(1,2,3,6,7,8,11,12,13);
sort($input);
$i=0;
$output=array();
$previous=NULL;
foreach($input as $value)
{  
    if($value>$previous+1)
    {
      $i++;
    }
    $output[$i][]=$value;     
    $previous=$value;
}
print_r($output);

小提琴