Foreach to ulepszona wersja pętli for.
Pętla foreach iteruje po zestawie danych, który jej przekażemy. Nie musisz się zatem martwić zwiększaniem wartości zmiennej i ustalaniem górnego limitu.
Przekazując pętli foreach tablicę masz pewność, że pętla wykona blok kodu dla każdego z obecnych w niej elementów.
Nie musisz określać punktu początkowego i końcowego. W przypadku tej pętli przekazujesz tylko listę elementów (np. w formie tablica) i pętla foreach przechodzi przez nią, jeden po drugim, do samego końca.
Zobacz przykład z tablicą:
<?php
$numbers = array();
// wypełnij dane przy pomocy pętli for
for($i = 0; $i < 10; $i++)
{
$numbers[] = $i;
}
// użycie pętli foreach na tablicy
foreach($numbers as $number)
{
// w każdym kolejnym przebiegu następny element tablicy
// jest przechowywany w zmiennej $number
echo $number;
}
Pewnie widzisz to na pierwszy rzut oka. Podczas pracy ze zbiorami danych najwygodniej jest używać pętli foreach. Zaryzykuję nawet stwierdzenie, że pętla foreach jest najczęściej stosowaną pętlą w programowaniu w PHP.
Najważniejsze zalety
Poniżej trzy najważniejsze zalety:
- Nie musisz dokładnie wiedzieć, ile elementów zawiera zestaw.
- Nie musisz wyodrębniać ich pojedynczo.
- Pętla foreach działa z dowolnymi indeskami (za chwilę przykład z tablicą asocjacyjną).
W każdym przebiegu tej pętli otrzymujesz kolejny element dostępny w zmiennej pomocniczej, zadeklarowanej podczas definicji pętli (po słowie kluczowym „as”). W naszym przykładzie zdefiniowaliśmy „$numbers as $number”, więc otrzymujemy każdą następną liczbę w postaci zmiennej $number.
Teraz czas na przykład z tablicą asocjacyjną.
Foreach i tablice asocjacyjne
Dla szybkiego przypomnienia, tablice asocjacyjne to te z niestandardowym indeksem. Jej elementy nie są numerowane (1, 2, 3 itd.) tylko możesz sam definiować, jak poszczególny indeks wygląda.
Posłużmy się przykładem ucznia, któremu dodajemy poszczególne atrybuty (jak imię, nazwisko, data urodzenia itp.).
<?php
$student = array();
$student['firstName'] = 'Marcin';
$student['lastName'] = 'Wesel';
$student['birthday'] = '19-05-1989';
foreach ($student as $data)
{
echo "Wartość atrybutu: $data";
}
Skrypt wyświetli trzy wartości atrybutu: Marcin Wesel 19-05-1989.
Pętla foreach ma jeszcze jedną ważną zaletę. Mianowicie, możesz pobrać wartość klucza (indeksu) i uzyskać do niego dostęp w każdym z przebiegów pętli.
Zobacz przykład:
<?php
$student = array();
$student['firstName'] = 'Marcin';
$student['lastName'] = 'Wesel';
$student['birthday'] = '19-05-1989';
foreach ($student as $key => $data)
{
echo "Wartość dla indeksu: $key to: $data";
}
Wtedy uzyskasz rezultat w postaci: “Wartość dla indeksu: firstName to: Marcin”.
Ta pętla również wspiera przerwania w postaci break i continue. Możesz w każdym momencie przerwać jej wykonywanie lub przeskoczyć do kolejnej iteracji.
To naprawdę potężne narzędzie. Założę się, że będziesz z niej często korzystać.
W kolejnej lekcji podzielę się z Tobą wiedzą na temat korzystania w PHP z dat i czasu. Zapraszam serdecznie.
Spis lekcji w rozdziale trzecim
| Poprzednia lekcja: Definiowanie indeksu tablicy | Następna lekcja: Data i czas |
