防止价值重叠

时间:2015-09-12 12:32:15

标签: php arrays algorithm

我有以下数组

array (size=5)
0 => 
array (size=1)
  'margin' => 1
1 => 
array (size=1)
  'margin' => 14
2 => 
array (size=1)
  'margin' => 23
3 => 
array (size=1)
  'margin' => 24
4 => 
array (size=1)
  'margin' => 27

我想防止重叠,我的意思是每个人应该至少按值/间隔5而不同,同时我不希望最终保证金超过30。

并且边距应仅在其当前值附近加/减,如最终输出可以如下

array (size=5)
0 => 
array (size=1)
  'margin' => 1
1 => 
array (size=1)
  'margin' => 14
2 => 
array (size=1)
  'margin' => 19
3 => 
array (size=1)
  'margin' => 24
4 => 
array (size=1)
  'margin' => 29

到目前为止,我已尝试使用以下代码来检测重叠

while(list($i, $v) = each($data)) {

    if(!empty($data[$i+1]["margin"])){

        if(($data[$i+1]["margin"]-$v["margin"])<5)
            echo "Overlapping index : ".($i+1).PHP_EOL;

        }
}

但是我很难做一些算法去除重叠的地方。

  

P.S。数组中的所有数据都已排序(边缘明确)。

有人可以帮我吗?提前谢谢。

0 个答案:

没有答案