Как суммировать массив с помощью функции в PHP - PullRequest
0 голосов
/ 18 сентября 2018

Мне нужно заняться спортом.Необходимо создать функцию с именем 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);

Ответы [ 4 ]

0 голосов
/ 18 сентября 2018

Прежде всего вам нужно вернуть $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
?>
0 голосов
/ 18 сентября 2018

Вы можете просто использовать встроенный в 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]);
0 голосов
/ 18 сентября 2018

Так близко. Всего 2 дела.

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]);
0 голосов
/ 18 сентября 2018

Поскольку вам нужно написать функцию, ваш код должен выглядеть следующим образом:

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




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

Ваш код не работает, потому что вы не передаете массив функции, и вы такжевозвращает параметр, а не переменную $ total.

Кроме того, вы можете использовать array_sum внутри собственной функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...