我的问题是如何在PHP中对整数数组执行比较函数?
具体来说,我从一个我想要过滤的数组开始:
$array = array(1,10,18,29,42,50,61);
并返回一个如下所示的数组:
//return where diff > 10
$new_array = array(1,29,42,61);
我正在努力确保我过滤掉差异小于10的任何数字,包括任何相邻的数字(因此为什么18不在列表中)。
答案 0 :(得分:4)
贪婪的近似给出了这个:
$array = array(1,10,18,29,42,50,61);
$clusters = [];
$prev = null;
foreach ($array as $value) {
if ($prev == null || $prev + 10 < $value) {
$clusters[] = $value; // more than 10 difference between previous
}
$prev = $value; // update previous
}
它产生:
Array
(
[0] => 1
[1] => 29
[2] => 42
[3] => 61
)