PHP数组和自我数学

时间:2014-06-23 23:17:39

标签: php arrays math

我的问题是如何在PHP中对整数数组执行比较函数?

具体来说,我从一个我想要过滤的数组开始:

$array = array(1,10,18,29,42,50,61);

并返回一个如下所示的数组:

//return where diff > 10
$new_array = array(1,29,42,61);

我正在努力确保我过滤掉差异小于10的任何数字,包括任何相邻的数字(因此为什么18不在列表中)。

1 个答案:

答案 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
)