【问题标题】:Code Check: Random Number Array for sorting and calculation代码检查:用于排序和计算的随机数数组
【发布时间】:2018-09-20 21:25:52
【问题描述】:
<?php

//array 
$lessFifty = array();
$moreFifty = array();

//number generation
for ($i = 1; i<=30; $i++) {
    $number = rand(0, 100);

//Sorting <50>      
  if ($number < 50 ) {
      $lessFifty[] = $number;
  } else {
      $moreFifty[] = $number; 
  } 
}

print_r($lessFifty); 
print_r($moreFifty);

//Average
echo "<p> average of values less than fifty: </p>";
    array_sum($lessFifty) / count($lessFifty) ;
echo "<p> average of values greater than fifty: </p>" ;  
    array_sum($moreFifty) / count($moreFifty) ;
?>

这是我目前所拥有的。我正在尝试生成 0-100 范围内的 50 个随机数。然后我必须将其排序为小于或大于 50。

我还必须计算平均值、范围和中位数。

当我尝试达到平均水平并将其放入我的浏览器(启用服务器)时,我得到一个空白页面。没有错误,只是一个空白。我还使用 PHP Sandbox 对其进行了测试,没有出现语法错误,只是一个空白的结果框。

如何解决此问题,以便计算实际发生并显示在页面上?

【问题讨论】:

    标签: php arrays average


    【解决方案1】:

    您的脚本会导致无限循环,如果没有任何错误报告,您将不会看到您的脚本内存不足。

    您可以通过修复 for-loop 来解决此问题。你忘了在第二个i 之前放一个$

    for ($i = 1; i<=30; $i++) {
    //          ^^^
    // it should be
    for ($i = 1; $i<=30; $i++) {
    

    要启用错误报告,以查看将来的错误(如内存不足错误),您可以查看How to get useful error messages in PHP? 了解更多信息。


    但是您的脚本仍然不会打印您计算出的平均值,您应该在两次计算之前添加一个echo,或者您可以使用concatenation 来合并字符串并且只使用2 个echos。

    【讨论】:

    • 这很容易解决!这是我的疏忽。谢谢!
    • @Kari 没问题!每个人都在那里,每个人都从中学习。
    【解决方案2】:

    2 修复了 i&lt;=30 中缺少的 $;以及结果的输出 echo

    <?php
    
    
    //array 
    $lessFifty = array();
    $moreFifty = array();
    
    //number generation
    for ($i = 1; $i<=30; $i++) {
        $number = rand(0, 100);
    
    //Sorting <50>      
      if ($number < 50 ) {
          $lessFifty[] = $number;
      } else {
          $moreFifty[] = $number; 
      } 
    }
    
    print_r($lessFifty); 
    print_r($moreFifty);
    
    //Average
    echo "<p> average of values less than fifty: </p>";
    echo    array_sum($lessFifty) / count($lessFifty) ;
    echo "<p> average of values greater than fifty: </p>" ;  
    echo    array_sum($moreFifty) / count($moreFifty) ;
    

    替代显示代码:

    echo "<p> average of values less than fifty: ".array_sum($lessFifty) / count($lessFifty)."</p>" ;
    echo "<p> average of values greater than fifty: ".array_sum($moreFifty) / count($moreFifty)."</p>"
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多