为了账号安全,请及时绑定邮箱和手机立即绑定

PHP - 计算特定范围内的数组元素

PHP - 计算特定范围内的数组元素

PHP
胡说叔叔 2021-06-03 10:39:40
我有一个包含 950 个元素的数组。元素的值在 80-110 之间。我想在 80-90、90-100 和 100-110 之间数一数。然后我会在图表上显示它们。这可以计算 php 中的元素吗?
查看完整描述

3 回答

?
aluckdog

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>";

?>


查看完整回答
反对 回复 2021-06-04
?
波斯汪

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;

}


查看完整回答
反对 回复 2021-06-04
?
暮色呼如

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...

}


查看完整回答
反对 回复 2021-06-04
  • 3 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信