使用PHP计算数组中的实例数



我试图得到'UnitSqFeet'的多少实例的计数在一定范围内。例如,有多少实例在0 - 175或176 - 300之间。

这是一个数组的部分示例(它总共包含46个)。

Array ( 
    [0] => Array ( [UnitNumber] => 1.03 [UnitSqFeet] => 60.75 ) 
    [1] => Array ( [UnitNumber] => 1.04 [UnitSqFeet] => 160.39 ) 
    [2] => Array ( [UnitNumber] => 1.05 [UnitSqFeet] => 231.55 ) 
    [3] => Array ( [UnitNumber] => 1.06 [UnitSqFeet] => 280.24 )
)

'UnitSqFeet'是一个字符串,所以我假设它必须在那里的某个地方转换。

我设法得到这个工作如下,但它只会输出这个在html表的第一个单元格,而不是其余的。在这里做了一些研究后,我明白这是因为我在重复每个单元格的查询,在第一次查询之后,它已经检索了所有的行。不确定是否有一个解决方案,我可以重新设置查询?

$counter = 0;
while ($units = odbc_fetch_array($result)) {
    $num = $units['UnitSqFeet'];
    $float = (float)$num;
    if ($float > 0 && $float < 175) {
        count($float);
        $counter++;
    };  
};
echo $counter;

Try as

$count = $count2 = 0;
$result = array();
foreach(array_column($arr,'UnitSqFeet') as $key => $value){
    if(round($value) <= 170){
        if(!isset($result['0-170'])) $result['0-170'] = $count++;
        $result['0-170'] = $count++;
    }else{
        if(!isset($result['171-300'])) $result['171-300'] = $count2++;
        $result['171-300'] = $count2++;
    }
}
print_r($result);

小提琴

试试:http://viper-7.com/ofozYB

<?php
$UnitSqFeet = array_column($array, 'UnitSqFeet');
$output = array_filter($UnitSqFeet, function ($var) {
    return ( $var >= 70 && $var <= 250 ); // return if between 70 & 250
});
print_r($output);
echo "There is " . count($output) . " values in the selected range";

相关内容

  • 没有找到相关文章

最新更新