Работа с последовательностью целых чисел

Задача
Требуется применить некоторый код к диапазону целых чисел.

Решение
Это делается при помощи функции range(), которая возвращает массив, состоящий из целых чисел:

foreach(range($start,$end) as $i) {
plot_point($i);
}

Иногда вместо функции range() целесообразно применить цикл for. Для инкремента можно использовать также значения, отличные от 1.

Например:
for ($i = $start; $i <= $end; $i += $increment) {
plot_point($i);
}

Обсуждение
Циклы, подобные приведенному выше, являются общепринятыми. Например, вы могли бы разрабатывать функцию и должны были бы вычислить результаты для массива точек на графике. Или вести обратный отсчет в NASA перед запуском космического челнока Колумбия.

В первом примере функция range() возвращает массив значений от $start до $end. Затем foreach берет каждый элемент и присваивает его переменной $i внутри цикла. Преимущество применения функции range() в ее краткости, но этот инструмент имеет некоторые недостатки. Например, большой массив может занимать неоправданно большой объем памяти.


Кроме того, приходится увеличивать ряд на одно число за раз, поэтому нельзя выполнить цикл, например для последовательности четных чисел.
Что касается PHP 4.1, то значение переменной $start может быть больше значения переменной $end. В этом случае функция range() возвращает числа в убывающем порядке. Также можно использовать итерацию для последовательности символов:

print_r(range('l', 'p'));
Array
(
[0] => l
[1] => m
[2] => n
[3] => o
[4] => p
)

Цикл for использует только единственное целое и совершенно не работает с массивом. Возможности цикла while богаче, он предоставляет больший контроль над циклом, так как позволяет увеличивать и уменьшать переменную $i более свободно. Можно изменять переменную $i внутри цикла, что не всегда можно сделать с функцией range(), поскольку PHP читает весь массив при входе в цикл, и изменения в массиве не оказывают влияния на последовательность элементов.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Взятие логарифмов
Вычисление степеней
Вычисление тригонометрических функций
Вычисления с не десятичными числами
Генерация случайных чисел в пределах диапазона

Вернуться в раздел: PHP / 2. Числа