使用数组PHP中的范围计算数据

使用数组PHP中的范围计算数据,php,Php,我想使用PHP从数组中使用range base计算数据。。 这是我的数组 $array = array( 1.1, 2.2, 3.2, 4.5, 4.2, 5.4, 6.2, 7.1, 8, 9.4, 10, 1.7); 我的预期输出如下(我手动设置的范围数,我只想计算包含我角色的数据量): 我试着这样写,但还是不行 $start = 1; $end = 2.5; $int = 0;

我想使用PHP从数组中使用range base计算数据。。 这是我的数组

$array = array(
            1.1, 2.2, 3.2, 4.5, 4.2,
            5.4, 6.2, 7.1, 8, 9.4, 10,
            1.7);
我的预期输出如下(我手动设置的范围数,我只想计算包含我角色的数据量):

我试着这样写,但还是不行

$start = 1;        
$end = 2.5;        
$int = 0;
   foreach ($array as $key => $value) {
      if ($start>=$value && $end<=$value) {
          $int++;
      }
   }
echo $int;
$start=1;
$end=2.5;
$int=0;
foreach($key=>$value的数组){

如果($start>=$value&&$end如果我没有误解你的问题,那么这应该对你有用

$array = array(
            1.1, 2.2, 3.2, 4.5, 4.2,
            5.4, 6.2, 7.1, 8, 9.4, 10,
            1.7);

$count = [];
foreach ($array as $key => $value) {

   if ($value<ceil($value)) {
        $count[floor($value)."-".ceil($value)]++;
    }
}

print '<pre>';
print_r($count);
print '</pre>';

请参见演示:

您必须设置
范围,因为它是一致的值。您可以使用
array\u reduce
array\u filter
来汇总数据

Array
(
    [1.00-2.50] => 3
    [2.51-3.50] => 1
    [3.51-4.00] => 0
)

请向我们展示您迄今为止所做的尝试。目前还不清楚您要求的是什么。好的,先生@vascowhite,我编辑了我的问题,范围和步骤的起始点不一致。是的,因为我想计算大学平均分的数据摘要。这对我来说是可行的,但是如果我使用十进制来计算范围,该怎么办呢。(我是jst编辑我的问题)@being-sunny@FatchulAmin哦,天哪,你现在已经编辑了预期的输出..!哦,对不起,我手动设置的范围数,我只想计算有多少数据包括来自arrayHappy帮助的我的角色:)
 Array
 (
  [1-2] => 2
  [2-3] => 1
  [3-4] => 1
  [4-5] => 2
  [5-6] => 1
  [6-7] => 1
  [7-8] => 1
  [9-10]=> 1
 )
$array = array(1.1, 2.2, 3.2, 4.5, 4.2,5.4, 6.2, 7.1, 8, 9.4, 10,1.7);
$range = array("1.00-2.50","2.51-3.50","3.51-4.00");

$grouped = array_reduce($range, function($c,$v) use($array) {
    $group = array_filter($array,function($x) use ($v){
        $t = explode("-",$v);
        return $x >= $t[0] && $x <= $t[1];
    });

    $c[ $v ] = count( $group );
    return $c;
},array());

echo "<pre>";
print_r( $grouped );
echo "</pre>";
Array
(
    [1.00-2.50] => 3
    [2.51-3.50] => 1
    [3.51-4.00] => 0
)