Сумма всех элементов массива php

Я довольно новичок в php, но мне кажется, что я пропускаю что-то совершенно простое?

У меня есть некоторые значения в столбце базы данных, которые разделены запятыми, например, так:
1,2,3

Когда я пытаюсь получить сумму значений, я ожидаю, что эхо-массив array_sum будет равен 6, но я получу только первое значение, т.е. «1»

Решение

Это строка, а не массив, вы должны разделить ее, используя взрываться функция:

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

Чтобы использовать array_sum строка должна быть преобразована в массив

Вам нужно использовать взрываться функция:

Таким образом, ваш общий код должен быть таким:

array_sum() работает, складывая значения в массиве. У вас есть только одна пара ключ => значение в вашем массиве: ключ 0 со значением 1,2,3 ,

Если у вас есть список, разделенный запятыми, и вы хотите, чтобы это был массив, я бы использовал explode() функция, чтобы превратить список в правильные пары ключ => значение, которые array_sum() будет ожидать.

Вы не можете инициализировать массив так, как вы собираетесь. Вы передаете строку через запятую, которая является просто одним аргументом. PHP не преобразует эту строку автоматически в отдельные аргументы для вас.

Чтобы преобразовать разделенную запятыми строку в массив отдельных значений, вы можете разбить строку с помощью функции, подобной explode() , который принимает в качестве аргументов разделитель и строку и возвращает массив значений, разделенных разделителем.

(PHP 4 >= 4.0.4, PHP 5)

array_sum — Вычислить сумму значений массива

Описание number array_sum ( array array )

array_sum() возвращает сумму значений массива. Полученный результат будет иметь тип integer или float .

Пример 1. Пример использования array_sum()

= array( 2 , 4 , 6 , 8 );
echo "sum(a) = " . array_sum ( $a ) . "
" ;
Читайте также:  Стедикам для видеокамеры panasonic

$b = array( "a" => 1.2 , "b" => 2.3 , "c" => 3.4 );
echo "sum(b) = " . array_sum ( $b ) . "
" ;
?>

sum(a) = 20 sum(b) = 6.9

Замечание: PHP более ранних, чем 4.2.1, версий модифицировал переданный в качестве аргумента массив и конвертировал строки в числа (что в большинстве случаев означало конвертирование в 0).

Хочу написать на PHP функцию, которая может посчитать сумму элементов массива. Длина массива задается аргументом этой функции.

Пробовал написать, явно не то, help!

5 ответов 5

Я не очень понял суть Вашего вопроса, но если Вы хотите написать функцию, которая считает сумму элементов массива, который передаётся в эту функцию, то надо сделать так:

Пример вызова функции:

Длина массива задается аргументом этой функции.

Эта фраза мне кажется неоднозначной. Имеется в виду, что единственный аргумент ф-ии – сам массив, и по нему определяем его длину? Или же ф-ии передаётся два параметра: сам массив и кол-во элементов, которое надо просуммировать, причём, это кол-во может быть меньше, равно, или даже больше, чем длина массива, и все эти случаи нужно обработать?

Ориентируюсь на самое простое объяснение, передаётся только сам массив.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *