tristamoff
7 лет назадЦиклы, перебор массива на php
В прошлом уроке я рассказал об элементарных операциях над массивом. Очень часто нужно провести операцию над каждым элементом массива.
Самое простое - это перебрать массив. Для этого используется оператор foreach.
Если говорить схематично - то представьте себе пружину. Если следовать за её витками - то вы пройдёте её целиком. Перебор массива выглядит примерно так-же.
И количество витков - это количество элементов массива
Источник
Предположим у нас есть 4 человека, которые положили деньги в банк под проценты и нам нужно посчитать сколько они в итоге получат.
Опишем это в виде неассоциативного многомерного массива. Ассоциативность тут ни к чему, а многомерность достигается за счёт того, что каждый элемент массива тоже является массивом.
Исходные данные:
<?php
$peoples = array();
$peoples[] = array('name' => 'Tom', 'money' => 100, 'percent' => 12);
$peoples[] = array('name' => 'Jon', 'money' => 85, 'percent' => 15);
$peoples[] = array('name' => 'Leo', 'money' => 163, 'percent' => 11);
$peoples[] = array('name' => 'Bob', 'money' => 17, 'percent' => 80);
?>
Теперь будем перебирать массив так:
<?php
foreach ($peoples as $i => $person) {
//внутри цикла в переменной $i будет ключ массива, в нашем случае это 0, 1, 2 и 3
//в переменной $person будет массив из имени, сумы и процента
//к текущей сумме прибавляем процент от этой суммы
$new_money = $person['money'] + ($person['money'] / 100 * $person['percent']);
//сразу выводим на экран
echo $person['name'] . ' new sum = ' . $new_money . '<br />';
}
?>
Выведет на экран:
Tom new sum = 112
Jon new sum = 97.75
Leo new sum = 180.93
Bob new sum = 30.6
Переменная $i внутри цикла необязательна. Если вам неважен ключ - можете её не писать.
<?php
foreach ($peoples as $person) {
echo $person['name'] . '<br />';
}
?>