Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Pętla foreach

środa,

Pętla foreach

Język PHP udostępnia kilka rodzajów pętli, foreach jest świetnym narzędziem do operowania na elementach tablicy. W programowaniu operacje wykonywane wewnątrz pętli określa się mianem iteracji (iteracja (łac. iteratio) – powtarzanie).

Przykład 1

W pierwszym przykładzie za pomocą pętli wygenerowano listę HTML. W każdej iteracji do zmiennej $value podstawiana jest kolejna wartość tablicy.

$lista = ['raz', 'dwa', 'trzy'];
echo '<ul>';
foreach($lista as $value) {
  echo "<li>$value</li>";
}
echo '</ul>';

Podobny efekt można uzyskać bez uciekania się do pętli.

$lista = ['raz', 'dwa', 'trzy'];
echo '<ul><li>' . implode('</li><li>', $lista) . '</li></ul>';

Przykład 2

W drugim przykładzie za pomocą funkcji range() wygenerowano tablicę liczb z zakresu 0–10 i wykorzystano ją do wypisania w pętli pierwszych dziesięciu kwadratów liczby dwa.

foreach(range(0,10) as $potega)
  echo "2^$potega = " . 2**$potega . '<br>';

/*
2^0 = 1
2^1 = 2
...
2^10 = 1024
*/

Przykład 3

Pętle mogą się zagnieżdżać. Kod przykładu wypisuje tzw. tabliczkę mnożenia. Wykorzystano wygenerowaną przez funkcję range() tablicę liczb z zakresu 1–10. Pierwsza pętla (zewnętrzna) pobiera kolejne liczby i przekazuje je do pętli wewnętrznej, w której są one mnożone przez wszystkie elementy tablicy.

$x = range(1,10);
foreach($x as $a) {
  foreach($x as $b) {
    echo "$a * $b = " . $a * $b . '
'; } echo '
'; } /* 1 * 1 = 1 1 * 2 = 2 ... 10 * 10 = 100 */

Przykład 4

W kolejnym przykładzie za pomocą iteracji obliczana jest suma pierwszych stu liczb naturalnych. Tablicę liczb wygenerowano korzystając z funkcji range().

$suma = 0;
foreach(range(1,100) as $val) $suma += $val;
echo $suma; // 5050

Język PHP udostępnia funkcję pozwalającą zsumować elementy tablicy, jest to szybsza i prostsza metoda niż przedstawione rozwiązanie iteracyjne. Pętle można wykorzystać w mniej typowych przypadkach, np. obliczenie sumy kwadratów pierwszych stu liczb naturalnych ($suma += $val*$val).

echo array_sum(range(1,100)); // 5050

Przykład 5

W przypadku tablicy asocjacyjnej użyteczne do generowania treści mogą być także klucze. W ostatnim przykładzie wykorzystano dającą łatwy dostęp do kluczy tablicy podczas iteracji rozszerzoną składnię pętli foreach.

$linki = [
  'CKZiU Mrągowo' =>  'https://ckziumragowo.pl',
  'MEN'        => 'https://men.gov.pl',
  'Wikipedia'    => 'https://pl.wikipedia.org/'
];

echo '<ul>';
foreach($linki as $klucz => $url) {
  echo "<li><a href="$url">$klucz</a<</li>";
}
echo '</ul>';

Trzy miesiące temu na naszej stronie…

Artykuł: Akcja w Pińsku

Akcja w Pińsku

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Artykuł: Rozdzielczość i częstotliwość odświeżania monitora

Rozdzielczość i częstotliwość odświeżania monitora

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły