Функция array_sum в PHP: как вычислить сумму элементов массива
Узнайте, как использовать функцию array_sum() в PHP для суммирования значений массива — с примерами и лучшими практиками.
Функция array_sum() складывает все значения массива и возвращает итоговую сумму. Это один из самых быстрых способов подсчитать сумму числовой коллекции в PHP — цен в корзине, баллов в тесте или любого другого набора чисел — без написания собственного цикла. В этой главе рассматриваются синтаксис, возвращаемый тип, поведение при нечисловых значениях и пустых массивах, а также несколько практических примеров.
Что такое функция array_sum в PHP?
Функция array_sum() в PHP — это встроенная функция, которая вычисляет и возвращает сумму всех значений массива. Это простая, но мощная функция, способная сэкономить немало времени и усилий при работе с массивами. Функция принимает единственный параметр — массив, сумму значений которого требуется вычислить.
Базовый синтаксис функции array_sum():
Синтаксис array_sum в PHP
array_sum(array $array): int|floatФункция принимает массив в качестве единственного параметра и возвращает int|float: если все значения являются целыми числами, результат будет типа int, но как только среди значений встретится число с плавающей точкой, результат станет float. Функция работает как с индексированными, так и с ассоциативными массивами — ключи игнорируются, суммируются только значения.
Как использовать функцию array_sum в PHP
Использовать функцию array_sum() в PHP очень просто. Достаточно передать массив в функцию, и она вернёт сумму всех его значений.
Пример:
Пример использования функции array_sum в PHP
В этом примере определяется массив $numbers, содержащий пять целых чисел. Он передаётся в array_sum(), которая возвращает итоговую сумму. Результат выводится с помощью echo.
Примечание: array_sum() автоматически приводит значения к числовому типу. Числовая строка вроде "3" или "4.5" преобразуется в соответствующее число, тогда как нечисловая строка, например "abc", считается равной 0 (в PHP 8+ при этом выдаётся предупреждение). Таким образом, array_sum([1, "2", "abc"]) вернёт 3 (1 + 2 + 0).
Результат выполнения этого кода:
The sum of the numbers is: 15Практические примеры использования array_sum в PHP
Теперь, когда вы знаете, как использовать функцию array_sum() в PHP, рассмотрим несколько реальных примеров её применения в веб-разработке.
Пример 1: вычисление общей стоимости товаров в корзине
Предположим, вы создаёте интернет-магазин и хотите вычислить общую стоимость всех товаров в корзине. Для этого удобно воспользоваться функцией array_sum().
Пример:
PHP Пример 1: вычисление общей стоимости с помощью array_sum
Здесь определяется массив $cart с информацией о товарах. С помощью array_column() цены извлекаются в плоский массив, затем суммируются через array_sum(), и результат выводится на экран.
Результат выполнения этого кода:
The total price of the items in the cart is: $60Пример 2: вычисление среднего балла
В этом примере определяется массив $scores с пятью оценками студентов. Среднее значение вычисляется путём деления суммы баллов на количество элементов с помощью count(), после чего результат выводится на экран.
Вычисление среднего значения с помощью array_sum в PHP
Результат выполнения этого кода:
The average score of the students is: 84array_sum() в сравнении с array_product() и array_reduce()
array_sum() создана для одной задачи — сложения значений. Для других видов агрегации существуют родственные функции:
- Чтобы перемножить все значения вместо сложения, используйте
array_product(). - Для произвольной агрегации (конкатенация, условная сумма, суммирование свойства) используйте
array_reduce(), которая позволяет задать собственный callback.
Применяйте array_sum(), когда нужна простая сумма — она короче и быстрее эквивалентного вызова array_reduce().
Лучшие практики использования array_sum в PHP
Несмотря на простоту функции array_sum(), существует ряд рекомендаций, которые помогут использовать её правильно и эффективно.
1. Убедитесь, что входные данные являются массивом
Перед вызовом array_sum() важно убедиться, что переданное значение действительно является массивом. В PHP 8+ передача не-массива вызывает TypeError вместо предупреждения.
Для проверки типа переменной используйте функцию is_array(). Пример:
Проверка входных данных перед array_sum в PHP
if (is_array($numbers)) {
$sum = array_sum($numbers);
} else {
// handle the error
}Перед вызовом array_sum() переменная проверяется с помощью is_array(). Если значение не является массивом, ошибка обрабатывается соответствующим образом.
2. Обработка пустых массивов
При передаче пустого массива в функцию array_sum() она возвращает 0. Хотя в некоторых случаях это корректное значение, важно обрабатывать пустые массивы так, чтобы это соответствовало логике приложения.
Например, если вы вычисляете средний балл студентов в классе, а студентов нет, разумно вывести сообщение об отсутствии данных для усреднения.
Обработка пустых массивов при использовании array_sum в PHP
if (empty($scores)) {
echo "There are no scores to average.";
} else {
$average_score = array_sum($scores) / count($scores);
echo "The average score of the students is: " . $average_score;
}Проверяем, пуст ли $scores, с помощью empty(). Если пуст — выводим сообщение; в противном случае вычисляем и отображаем среднее значение.
Заключение
Функция array_sum() в PHP — простой, но мощный инструмент, который экономит время и усилия при работе с массивами. Она позволяет легко вычислить сумму всех значений массива, что бывает полезно в самых разных приложениях.
В этой статье представлено подробное руководство по использованию функции array_sum() в PHP, включая реальные примеры и лучшие практики. Следуя этим рекомендациям, вы сможете использовать функцию правильно и эффективно, создавая более надёжные PHP-приложения.