Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
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 />';
}
?>
1
10.284 GOLOS
На Golos с January 2017
Комментарии (6)
Сортировать по:
Сначала старые