#3. 7 php Перебор элементов массива

В предыдущем разделе был приведен пример вывода всех элементов массива при помощи цикла for. Для более простого вывода всех элементов массива (в том числе со строковыми или непоследовательными числовыми индексами) предусмотрена функция print_r(), пример использования которой приведен ниже:

<?php
$fruits[0] = "яблоко";
$fruits[1] = "груша";
$fruits[2] = "абрикос";
print_r($fruits);
?>

При выполнении этого кода будет выведено следующее:

Array
(
[0] => яблоко
[1] => груша
[2] => абрикос
)

Замечание

Функция рrint_r() предназначена для вывода переменной произвольного типа, включая обычные переменные, массивы и объекты.

Для обработки массивов предусмотрен также специальный вид цикла — цикл foreach. Синтаксис этого оператора имеет два варианта:

foreach(array as $value) statement;
foreach(array as $key => $value) statement.

Первый вариант оператора присваивает в цикле переменной $value очередной элемент массива. Второй вариант кроме этого присваивает переменной $кеу значение индекса, соответствующего текущему элементу массива. Пример использования цикла foreach приведен ниже:

<?php
$fruits = array("яблоко", "груша", "абрикос");
foreach($fruits as $value)
{
  echo "Значение: $value <BR>";
}
?>

В результате выполнения этого примера будут выведены строки:

Значение: яблоко
Значение: груша
Значение: абрикос

Для вывода индекса элемента массива вместе с его значением используется второй вариант синтаксиса оператора foreach():

<?php
$fruits = array("яблоко", "груша", "абрикос");
foreach($fruits as $key => $value)
{
  echo "Индекс: $key; Значение: $value, <BR>";
}
?>

В результате выполнения этого примера будут выведены строки:

Индекс: 0; Значение: яблоко
Индекс: 1; Значение: груша
Индекс: 2; Значение: абрикос

Для перебора элементов массива может быть также использован цикл while в сочетании с функцией each().

Предупреждение:

функция each() является устаревшей и удалена, начиная с php 8.0.0

Эта функция предназначена для перебора элементов массива. Каждый раз, когда она вызывается, она возвращает текущий элемент массива и передвигает внутренний указатель на следующий элемент. Функция возвращает пару индекс—значение в виде массива. Для присваивания индекса и значения элемента массива отдельным переменным используется в сочетании с функцией list(). Пример использования этих двух функций приведен ниже.

<?php
$fruits = array("яблоко", "груша", "абрикос");
while(list($key, $value) = each($fruits))
{
  echo "Индекс: $key; Значение: $value <BR>";
}
?>

Результат выполнения этого кода точно такой же, как и у предыдущего примера.