我有以下数组
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。数组中的所有数据都已排序(边缘明确)。
有人可以帮我吗?提前谢谢。