2017-02-17 9 views
0

配列内の要素をすばやく削除する方法。<がすばやく離れています。x個の数字の離れた配列から要素をフィルタするための素早い方法

例:あなたは違いを計算する場合、彼らは5以上のもの原因

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

は以下を返す必要がある:

array(1, 8, 15); 

それはPHPの組み込み関数でなければなりませんように。これは思えますこのため。しかし、私はうんざりしています。

+0

私はちょっと混乱しています。番号を5以上にしたいのですか? –

+0

5つ以上の数字を互いに離してください。 –

+0

単純なforループはそれをするでしょうか? – Rizier123

答えて

1

これには何も組み込まれていませんが、達成するのはかなり簡単です。

まず、ソートされていない限り、配列をソートします。

sort($your_array); 

結果の配列を最初の要素で初期化してから、配列を繰り返します。以前の値より少なくとも5大きい値になるたびに、結果にそれを加え、前の値をその値にリセットします。

$result[] = $previous = reset($your_array); 
foreach ($your_array as $value) { 
    if ($value - $previous >= 5) { 
     $result[] = $previous = $value; 
    } 
} 
関連する問題