PHP поддерживает множество типов циклов. цикл foreach – один из них. Этот цикл в основном используется для анализа переменных массива и объекта. Когда общее количество элементов массива не определено, лучше использовать цикл foreach, чем другой цикл. Количество итераций этого цикла зависит от количества элементов массива или количества свойств объекта, используемых в цикле для чтения. В этой статье показано, как этот цикл можно использовать для чтения переменных массива и объекта.
Синтаксис:
Цикл foreach можно использовать только для чтения значений массива или обоих ключей и значений массива.
Следующий цикл foreach используется для чтения значений элементов массива. Его можно использовать для чтения как числовых, так и ассоциативных массивов. Значение каждого элемента массива будет храниться в переменной на каждой итерации.
foreach(($array as $value) { // операторы }
Следующий цикл foreach используется для чтения значений элементов массива. В основном он используется для чтения ассоциативных массивов. На каждой итерации цикла каждый ключ и значение массива будут храниться в двух переменных.
foreach(($array as $key => $element) { // операторы }
Пример 1: чтение числового массива
В следующем примере показан способ чтения числового массива с помощью цикла foreach. Создайте файл PHP со следующим скриптом.
В скрипте объявляется числовой массив с именем $num_array из 10 элементов, а для хранения четных чисел из числового массива объявляется пустой массив с именем $new_array. Цикл foreach используется для перебора числового массива, а условие if используется для определения четных чисел из массива $num_array и сохранения всех четных чисел в массиве $new_array. Другой цикл foreach используется для печати значений $num_array.
<?php // Объявить числовой массив $num_array = array(12, 90, 15, 6, 32, 38, 75, 57, 60, 78); // Объявление пустого массива $new_array = array(); // инициализируем индекс для пустого массива $index = 0; echo "Значения массива: <br/>"; / * Итерируем числовой массив, чтобы найти числа, делящиеся на 5 и сохранить в новом массиве * / foreach($num_array as $value){ if($value%5 == 0) { $new_array[$index]= $value; $index++; } echo $value." "; } echo "<br/> <br/> Список чисел, которые делятся на 5: <br/>"; // Распечатать значения массива $new_array foreach($new_array as $value){ echo $value." "; } ?>
Вывод:
Вывод появится после запуска сценария с сервера. Выходные данные показывают, что в числовом массиве четыре четных числа.
Пример 2: чтение ассоциативного массива
В следующем примере показан способ чтения ассоциативного массива и сохранения определенных ключей из одного массива в другой с помощью цикла foreach. Здесь ассоциативный массив с именем $members содержит имя члена в качестве ключа и «Present» или « Absent» в качестве значения массива. Пустой массив с именем $present_member используется для хранения имен присутствующих членов. Затем цикл foreach используется для печати значений $present_member.
<?php // Объявить ассоциативный массив $members = array('Andrey Ex' => 'Present', 'Alex Master' => 'Absent', 'Maxim Kamerrer' => 'Present'); // Объявить пустой массив $present_members = array(); // Инициализируем индекс для массива $index = 0; foreach ($members as $key => $value) { if(($value == 'Present')){ $present_members[$index]= $key; $index ++; } } // Подсчитываем общее количество присутствующих участников $count = count($present_members)); echo "<b> $count участников. </b> <br/> <br/>"; echo "<b> Участники: </b> <br/>"; foreach(($present_members as $value)){ echo $value."<br />"; } ?>
Вывод:
Вывод появится после запуска сценария с сервера. Ассоциативный массив содержит три текущих значения и два отсутствующих значения. Для этого в выходных данных отображаются имена трех присутствующих членов из массива $members.
Пример 3: чтение свойств объектной переменной
В следующем примере показан способ чтения имен свойств и значений любого объекта. Создайте файл PHP со следующим скриптом.
Класс с именем Customer определен в сценарии, который содержит три общедоступных свойства со значениями. Затем создается переменная $object для доступа к свойствам класса. Переменная объекта может быть проанализирована как ассоциативный массив, используя цикл foreach. Здесь цикл foreach используется для чтения имени свойства и значения свойства объектной переменной $object. Каждое имя свойства и значение объекта $ будут считываться на каждой итерации цикла и печататься в каждой строке.
<?php // Определите класс с тремя свойствами class Customer { public $name = 'Andrey Ex'; public $email = 'Andrey@mail.ru'; public $phone = '0184423675'; } // Создаем объект класса $object = new Customer(()); // Распечатываем свойства объекта с помощью цикла foreach echo "<h3> Сведения о клиенте: </h3>"; foreach($object as $property => $value) { echo " $property = $value <br/>"; }?>
Вывод:
Вывод появится после запуска сценария с сервера. Класс Customer содержит три свойства: имя, адрес электронной почты и телефон. Эти свойства инициализируются значениями внутри класса. На выходе печатаются имена и значения свойств.
Заключение
Различные варианты использования цикла foreach в PHP описаны в этой статьи на нескольких примерах. Также показаны способы чтения переменных массива и объекта с помощью цикла foreach.
Этот цикл лучше использовать, когда записи извлекаются из любой таблицы базы данных с помощью PHP. Этот цикл можно использовать для чтения только значений массива или значений свойств объекта и чтения значений массива с ключами или значений свойств с именами.