我有一个这样的数组:102, 97, 101, 1, 107, 95, 555
。
我需要排除与其他数字非常不同的数字。所以数组应该是:102, 97, 101, 107, 95
。
我怎么能在PHP中做到这一点?
答案 0 :(得分:1)
function getAverageArray($min, array $arr){
$arr2 = array($arr[0]);
foreach(array_slice($arr,1) as $val)
if ($val - $arr[0] < $min && $arr[0] - $val < $min)
$arr2[] = $val;
return $arr2;
}
//the minimum difference necessary
$min = 90;
$arr = array(102, 97, 101, 1, 107, 95, 555);
//Array ( [0] => 102 [2] => 97 [3] => 101 [4] => 107 [5] => 95 )
print_r(getAverageArray($min,$arr));
答案 1 :(得分:0)
这是可能的,但您必须设置阈值。
获取所有值的平均值
排除`abs(value-avergage)&gt;的值your_threshold``