3 回答
TA贡献1847条经验 获得超7个赞
您可以通过运行 for 循环来简单地做到这一点。创建一个包含一系列元素的数组并运行 for 循环。虽然您将在那个时间运行循环,但根据给定的三组计算数组元素。最后,您将获得给定范围内的元素总数。为了您在下面获得更好的帮助,我举了一个例子:
<?php
$number = array(80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110);
$count1 = $count2 = $count3 = 0;
for ($i = 0; $i < sizeof($number); $i++) {
if($number[$i] >= 80 && $number[$i] <= 90 ) {
$count1++;
}
if($number[$i] >= 90 && $number[$i] <= 100 ) {
$count2++;
}
if($number[$i] >= 100 && $number[$i] <= 110 ) {
$count3++;
}
}
echo "The number between 80-90 = ".$count1."<br>";
echo "The number between 90-100 = ".$count2."<br>";
echo "The number between 100-110 = ".$count3."<br>";
?>
TA贡献1811条经验 获得超4个赞
为避免在您确定号码所属的位置时进行太多比较,跳转到下一个循环。
function countOccurences( array $numbersArray ):array
{
$return = array('n80to90' => 0, 'n90to100' => 0, 'n100to110' => 0);
foreach( $numbersArray as $number ){
if( $number < 80 || $number > 110 )
continue;
if($number < 91){
$return['n80to90']++;
continue;
}
if($number < 101){
$return['n90to100']++;
continue;
}
$return['n100to110']++;
}
return $return;
}
TA贡献1853条经验 获得超9个赞
我认为 OP 可能会寻求更Pythonic 的答案(但在 PHP 中)
//only valid in php 5.3 or higher
function countInRange($numbers,$lowest,$highest){
//bounds are included, for this example
return count(array_filter($numbers,function($number) use ($lowest,$highest){
return ($lowest<=$number && $number <=$highest);
}));
}
$numbers = [1,1,1,1,2,3,-5,-8,-9,10,11,12];
echo countInRange($numbers,1,3); // echoes 6
echo countInRange($numbers,-7,3); // echoes 7
echo countInRange($numbers,19,20); //echoes 0
'use' 关键字表示 php 中的'关闭'。在其他语言中,例如javascript,当然,外部函数中的变量会自动按范围导入到内部函数中(即没有特殊关键字),内部函数也可以称为“部分函数”。
由于某些原因,在 PHP 5.2x 或更低版本中,变量不会自动按范围导入,而在 PHP 5.3 或更高版本中,use 关键字可以克服这个问题。语法非常简单:
$functionHandle = function(<arguments>) use (<scope-imported variables>){
//...your code here...
}
- 3 回答
- 0 关注
- 252 浏览
添加回答
举报