Перебор элементов массива
В предыдущей статье был приведен пример вывода всех элементов массива при помощи цикла for. Для более простого вывода всех элементов массива (в том числе со строковыми или непоследовательными числовыми индексами) предусмотрена функция print_r, пример использования которой приведен ниже:
<?php $fruits[0] = "яблоко"; $fruits[1] = "груша"; $fruits[2] = "абрикос"; print_r($fruits); ?>
При выполнении этого кода будет выведено следующее:
Array ( [0] => яблоко [1] => груша [2] => абрикос )
Для обработки массивов предусмотрен также специальный вид цикла — цикл foreach. Синтаксис этого оператора имеет два варианта:
foreach(array as $value) statement foreach(array as $key => $value) statement
Первый вариант оператора присваивает в цикле переменной $value очередной элемент массива. Второй вариант кроме этого присваивает переменной $кеу значение индекса, соответствующего текущему элементу массива. Пример использования цикла foreach приведен ниже:
<?php $fruits = array("яблоко", "груша", "абрикос"); foreach ($fruits as $value) { echo "Значение: $value\n"; } ?>
В результате выполнения этого примера будут выведены строки:
Значение: яблоко Значение: груша Значение: абрикос
Для вывода индекса элемента массива вместе с его значением используется второй вариант синтаксиса оператора foreach:
<?php $fruits = array("яблоко", "груша", "абрикос"); foreach ($fruits as $key => $value) { echo "Индекс: $key; Значение: $value\n"; } ?>
В результате выполнения этого примера будут выведены строки:
Индекс: 0; Значение: яблоко Индекс: 1; Значение: груша Индекс: 2; Значение: абрикос
Для перебора элементов массива может быть также использован цикл whilе в сочетании с функцией each. Эта функция специально предназначена для перебора элементов массива. Каждый раз, когда она вызывается, она возвращает текущий элемент массива и передвигает внутренний указатель на следующий элемент. Функция возвращает пару индекс—значение в виде массива. Для присваивания индекса и значения элемента массива отдельным переменным используется функция list. Пример использования этих двух функций приведен ниже.
<?php $fruits = array("яблоко", "груша", "абрикос"); while ($list($key, $value) = each ($fruits)) { echo "Индекс: $key; Значение: $value\n"; } ?>
Результат выполнения этого кода точно такой же, как и у предыдущего примера.
Автор: Стивен Хольцнер. Переводчик: С. Банников