【发布时间】:2015-09-12 12:32:15
【问题描述】:
我有以下数组
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;
}
}
但我在做一些算法来消除重叠部分时遇到了困难。
附:数组中的所有数据都已排序(按边距)。
任何人都可以帮助我吗?提前致谢。
【问题讨论】: