【问题标题】:How to sum array using function in PHP如何在 PHP 中使用函数对数组求和
【发布时间】:2018-09-18 15:49:31
【问题描述】:

我有运动要做。 需要创建一个名为sumArray() 的函数,该函数应将数组作为参数并返回数组中所有项目的总和。使用数组调用函数来回答:[4,256,5,13,1]。在下面编写代码并将答案放入变量 ANSWER。

我来了这么久,但它不起作用。

function sumArray($array) {
    $total = 0;
    foreach ($array as $value) {
        $total += $value;
    }
    return $array;
}




$ANSWER = sumArray(4, 256, 5, 13, 1);

【问题讨论】:

  • return $total
  • 4, 256, 5, 13, 1这不是一个数组,你在函数内部使用foreach
  • 调用应该是sumArray([4, 256, 5, 13, 1]) 以使参数成为一个数组。
  • 如果你想添加一个数组试试array_sum()
  • @NigelRen 我知道有人会这么说。你注意到这是一个练习吗?他正在学习如何遍历数组。

标签: php arrays function foreach


【解决方案1】:

如此接近。只需要做两件事。

function sumArray($array) {
    $total = 0;
    foreach ($array as $value) {
        $total += $value;
    }
//YOU NEED TO RETURN $total !! not $array
    return $total;
}
//the params given to sumArray() are not an array. just encapsule that in [] like: 
$ANSWER = sumArray([4, 256, 5, 13, 1]);

【讨论】:

  • 如此接近! : / 谢谢。
【解决方案2】:

首先你需要返回$total,你又要返回你的数组了。

其次,你必须需要在函数参数中传递数组:

$sumArray = array(4, 256, 5, 13, 1); // your array
$myAnswer = sumArray($sumArray); // calling function

示例:

<?php 
function sumArray($array) {
    $total = 0;
    foreach ($array as $value) {
        $total += $value;
    }
    return $total;
}

/** Your array **/
$sumArray = array(4, 256, 5, 13, 1);

/** Calling function **/
$myAnswer = sumArray($sumArray);

/** Your result **/
echo $myAnswer; //279 result
?>

【讨论】:

    【解决方案3】:

    您可以只使用 PHP 内置的 array_sum 方法。

    http://php.net/manual/en/function.array-sum.php

    $ANSWER = array_sum(array(4, 256, 5, 13, 1));
    

    如果你必须创建一个函数然后包装它。

    function sumArray($array) {
        return array_sum($array);
    }
    $ANSWER = sumArray(array(4, 256, 5, 13, 1));
    

    注意。在您的示例中,您没有提供具有各种参数的数组。你也可以这样做:

    function sumArray() {
        return array_sum(func_get_args());
    }
    $ANSWER = sumArray(4, 256, 5, 13, 1);
    

    编辑。由于此答案因未提供有关如何将其添加到此处的示例而被否决。尽管您应该始终使用内置功能,如果它是可用的并且教您避免它是违反直觉的。

    function sumArray($array) {
        for($i = 0, $total = 0; $i < count($array); $total+=$array[$i++]);
        return $total;
    }
    
    $ANSWER = sumArray([4, 256, 5, 13, 1]);
    

    【讨论】:

      【解决方案4】:

      由于您需要编写一个函数,您的代码应该如下所示:

      function sumArray($array) {
          $total = 0;
          foreach ($array as $value) {
              $total += $value;
          }
          return $total;
      }
      
      
      
      
      $ANSWER = sumArray(array(4, 256, 5, 13, 1));
      

      您的代码不起作用,因为您没有将数组传递给函数,而且您还返回了参数而不是 $total 变量。

      或者,您可以在自己的函数中使用 array_sum。

      【讨论】:

      • 这是一个学术练习。
      • @Barmar:问题中没有提到代码必须满足的任何约束,除了(引用):“创建一个名为sumArray() 的函数,它应该将数组作为参数和返回数组中所有项目的总和。”对如何编写该函数没有任何限制。
      • @Roy:问题中没有提到代码必须满足的任何约束,除了(引用):“创建一个名为sumArray() 的函数,它应该将数组作为参数和返回数组中所有项目的总和。”对如何编写该函数没有任何限制。
      猜你喜欢
      • 2016-10-18
      • 1970-01-01
      • 2020-06-15
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      相关资源
      最近更新 更多