→ Пошук по сайту       Увійти / Зареєструватися
Знання Мова програмування PHP Работа с массивами данных

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

Компетенція Програмування на PHP

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

В этом разделе мы познакомимся с функцией, вычисляющей сумму всех элементов массива. Сама задача вычисления суммы значений массива предельно проста. Но зачем писать лишний раз один и тот же код, если можно воспользоваться специально созданной и всегда доступной функцией. Функция эта называется, как можно догадаться, array_sum(). И в качестве параметра ей передается только имя массива, сумму значений элементов которого нужно вычислить.

В качестве примера использования этой функции приведем решение более сложной задачи, чем просто вычисление суммы элементов. Этот пример также иллюстрирует применение функции array_slice(), которую мы обсуждали чуть раньше.

Пример 7.16. Пусть дан массив натуральных чисел. Нужно найти в нем такое число, что сумма элементов справа от него равна сумме элементов слева от него.

<?php
//массив задается функцией array
$arr = array(2,1,3,4,5,6,4);
// перебираем каждый элемент массива $arr.
// Внутри цикла текущий ключ массива 
// содержится в переменной $k,
// текущее значение – в переменной $v
foreach ($arr as $k => $val){
   $p = $k + 1;
// синтаксис array array_slice (
       array array,int offset [,int length])
// array_slice выделяет подмассив 
// длины length в массиве array, 
// начиная с элемента offset.
   $out_next = array_slice($arr,$p); 
   // получаем массив элементов, 
   // идущих после текущего
   $out_prev = array_slice($arr,0,$k); 
   // получаем массив элементов, 
   // идущих перед текущим
// функция mixed array_sum (array array) 
// подсчитывает сумму элементов массива array
   $next_sum = array_sum($out_next);
   $prev_sum = array_sum($out_prev);
// если сумма элементов до текущего равна 
// сумме элементов после, то выводим 
// значение текущего элемента
   if ($next_sum==$prev_sum) 
       echo "value:$val";
// можно посмотреть, что представляют собой 
// рассмотренные массивы на каждом шаге
// print_r($out_next); echo "<br>";
// print_r($out_prev);
// echo "$next_sum, $prev_sum<br>"; 
   echo "<hr>";
}
?>
    
Пример 7.16. Программа поиска числа, такого что сумма элементов справа от него равна сумме элементов слева от него
    © INTUIT.ru. Автор: Н.В. Савельева. Курс размещен по договоренности с администрацией INTUIT.ru
загрузка...
Теми розділу
Сторінки, близькі за змістом