1

次の配列があるとします。

$arr = array(0,0,1,2,2,5,6,7,7,9,10,10);

そして$n = 2、各値内の配列内$nの各値のカウントを取得する最も効率的な方法は何ですか?

たとえば、 には5、7、76の範囲内に他の 3 つの値があります。$n

最終的には、次のように、単にカウント内の対応する配列が$n必要です。

                // 0,0,1,2,2,5,6,7,7,9,10,10 // $arr, so you can see it lined up
$count_arr = array(4,4,4,4,4,3,3,4,4,4, 2, 2);

単純な foreach ループを使用する方法はありますか? CodePad リンク

$arr = array(0,0,1,2,2,5,6,7,7,9,10,10);
$n = 2;
$count_arr = array();
foreach ($arr as $v) {
    $range = range(($v-$n),($v+$n)); // simple range between lower and upper bound
    $count = count(array_intersect($arr,$range)); // count intersect array
    $count_arr[] = $count-1; // subtract 1 so you don't count itself
}
print_r($arr);
print_r($count_arr);
4

1 に答える 1