2017-02-17 48 views
0

如何快速移除數組中相距很遠的元素。快速將數組中的元素從x數中分離出來

例如:

array(1, 3, 5, 8, 11, 15); 

需要返回下面的原因,他們都超過5,如果你計算差值:

array(1, 8, 15); 

這似乎應該是在PHP中的內置函數爲了這。但我很困惑。

+0

我有點困惑..你想保持number> = 5或者確切地說是什麼? –

+0

保持彼此分開5或更多的數字。 –

+0

一個簡單的循環會做到這一點?! – Rizier123

回答

1

這沒有什麼內置的,但它是一件很容易完成的事情。

首先,排序你的數組,除非它已經排序。

sort($your_array); 

用第一個元素初始化您的結果數組,然後迭代該數組。每次得到的值至少比先前的值大5時,將其添加到結果中並將之前的值重置爲該值。

$result[] = $previous = reset($your_array); 
foreach ($your_array as $value) { 
    if ($value - $previous >= 5) { 
     $result[] = $previous = $value; 
    } 
}