Iterowanie z użyciem kluczy i wartości
Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 50 z 71.
W poprzedniej lekcji dowiedziałeś się, jak foreach umożliwia dostęp do każdej wartości w tablicy. A co, jeśli potrzebujesz również klucza? Jest to szczególnie przydatne podczas pracy z tablicami asocjacyjnymi.
Pętla foreach ma rozszerzoną składnię, która udostępnia klucz i wartość w każdej iteracji:
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
foreach ($person as $key => $value) {
echo "$key: $value\n";
}
?>To wyświetla:
name: Alice
age: 25
city: ParisSkładnia foreach ($array as $key => $value) przypisuje bieżący klucz do $key, a odpowiadającą mu wartość do $value. Możesz nazwać te zmienne dowolnie, byle nazwy były opisowe.
To działa również z tablicami indeksowanymi, w których kluczami są indeksy liczbowe:
<?php
$colors = ["red", "green", "blue"];
foreach ($colors as $index => $color) {
echo "$index: $color\n";
}
?>Wynikiem jest:
0: red
1: green
2: blueDostęp zarówno do kluczy, jak i wartości ułatwia wyświetlanie danych z etykietami lub wykonywanie operacji zależnych od klucza.
Wyzwanie
ŁatwyOdczytaj jeden wiersz wejścia zawierający obiekt JSON reprezentujący produkt z kluczami i wartościami (np. {"name":"Laptop","price":"999","stock":"25"}).
Użyj pętli foreach ze składnią klucz-wartość, aby przejść przez dane produktu. Wypisz każdy klucz i odpowiadającą mu wartość w formacie:
[key] => [value]Wypisz każdą parę klucz-wartość w osobnym wierszu.
Przykład 1:
Jeśli dane wejściowe to {"name":"Laptop","price":"999","stock":"25"}, dane wyjściowe powinny wyglądać następująco:
name => Laptop
price => 999
stock => 25Przykład 2:
Jeśli dane wejściowe to {"title":"PHP Basics","author":"John","pages":"350"}, dane wyjściowe powinny wyglądać następująco:
title => PHP Basics
author => John
pages => 350Przykład 3:
Jeśli dane wejściowe to {"city":"Paris","country":"France"}, dane wyjściowe powinny wyglądać następująco:
city => Paris
country => FranceSpróbuj swoich sił
<?php
// Odczytaj dane wejściowe JSON
$input = trim(fgets(STDIN));
// Przekształć JSON w tablicę asocjacyjną
$product = (array)json_decode($input, true);
// TODO: Napisz swój kod poniżej
// Użyj pętli foreach ze składnią klucz-wartość, aby przejść przez dane produktu
// Wypisz każdy klucz i wartość w formacie: [key] => [value]
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównaniaRówność i tożsamośćOperatory logiczne — część 1Operatory logiczne — część 2Powtórka — prosta logika2Zmienne i typy danych
LiczbyCiągi znaków i cudzysłowyWartości logiczneKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychPuste zmienneŁączenie ciągów znakówPobieranie danych od użytkownikaKonwersja na inne typy5Instrukcje warunkowe
Instrukcja ifIf - elseOperator trójargumentowyOperator null coalescingInstrukcja switchPodsumowanie — podejmowanie decyzji8Pętle
Pętla forPętla whilePętla foreachIterowanie z użyciem kluczy i wartościInstrukcja breakInstrukcja continuePodsumowanie — iterowanie po danych3Podstawowe operatory
Operatory arytmetyczneOperator moduloOperator potęgowaniaPrzypisanie złożoneInkrementacja/dekrementacjaPriorytet operatorówPowtórka — proste obliczeniaOperatory łańcuchów znakówPoćwicz samodzielnie: Kompilator PHP online