Суммирование только положительных чисел в массиве PHP

Прежде всего, спасибо за просмотр моего вопроса.

Я только хочу сложить положительные числа в числах $, используя оператор if, else.

$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);

$total = 0;

if ($numbers < 0 {
$numbers = 0;
}
elseif (now i want only the positive numbers to add up in the $total.)

Я учусь на первом курсе и пытаюсь понять логику.

1

Решение

$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);

$total = 0;

foreach($numbers as $number)
{
if($number > 0)
$total += $number;
}

это перебирает все элементы массива (foreach = для каждого числа в массиве) и проверяет, является ли элемент больше 0, если он есть, добавьте его в $total

2

Другие решения

Я не буду давать прямой ответ, но в данном случае вам нужен простой цикл, может быть цикл for или цикл foreach, поэтому на каждой итерации вам просто нужно проверять, является ли текущее число в цикле больше нуля.

Пример:

$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);
$total = 0;
foreach($numbers as $number) { // each loop, this `$number` will hold each number inside that array
if($number > 0) { // if its greater than zero, then make the arithmetic here inside the if block
// add them up here
// $total
} else {
// so if the number is less than zero, it will go to this block
}
}

Или, как сказал Майкл в комментариях, для этой цели также можно использовать функцию:

$numbers = array (1, 8, 12, 7, 14, -13, 8, 1, -1, 14, 7);
$total = array_sum(array_filter($numbers, function ($num){
return $num > 0;
}));
echo $total;
3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector