array_sum ()

 

У цьому розділі ми познайомимося з функцією, що обчислює суму всіх елементів масиву. Сама задача обчислення суми значень масиву гранично проста. Але навіщо писати зайвий раз один і той самий код, якщо можна скористатися спеціально створеною і завжди доступною функцією. Функція ця називається, як можна здогадатися, array_sum (). І як параметр їй передається тільки ім'я масиву, суму значень елементів якого потрібно обчислити.

Як приклад використання цієї функції наведемо рішення більш складного завдання, ніж просто обчислення суми елементів. Цей приклад також ілюструє застосування функції array_slice (), яку ми здадали трохи раніше.

Приклад. Нехай дано масив натуральних чисел. Потрібно знайти в ньому таке число, що сума елементів праворуч від нього дорівнює сумі елементів зліва від нього.

<? Php 
// Масив задається функцією array 
$arr = array (2,1,3,4,5,6,4); 
// Перебираємо кожний елемент масиву $arr. 
// Для циклу поточний ключ масиву 
// Міститься у змінній $k, 
// Поточне значення - у змінній $ val 
foreach ($arr as $k => $val) { 
$р = $k + 1; 
// Синтаксис array array_slice ( 
// Array array, int offset [, int length]) 
// Array_slice виділяє підмасив 
// Довжини length в масиві array, 
// Починаючи з елемента offset. 
$оut_next = array_slice ($arr, $p); 
// Отримуємо масив елементів, 
// Що йдуть після поточного 
$оut_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>"; 

?>