Modyfikowanie wartości za pomocą klucza
Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 43 z 71.
Tak jak nauczyłeś się modyfikować elementy tablicy indeksowanej na podstawie ich pozycji, możesz aktualizować wartości w tablicach asocjacyjnych za pomocą ich kluczy. Składnia jest identyczna: przypisz nową wartość do istniejącego klucza.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Gdy przypiszesz wartość do klucza, który już istnieje, PHP po prostu zastąpi starą wartość nową. Sam klucz pozostanie bez zmian — zaktualizowana zostanie tylko przypisana do niego wartość.
Jest to przydatne, gdy dane muszą zmieniać się w czasie. Na przykład podczas aktualizowania statusu użytkownika, zmieniania ceny produktu lub poprawiania nieprawidłowo wprowadzonych informacji. Klucz służy jako stały punkt odniesienia, a wartość można modyfikować w razie potrzeby.
Wyzwanie
ŁatwyWczytaj wiersz danych wejściowych zawierający obiekt JSON reprezentujący informacje o produkcie (np. {"name": "Laptop", "price": 999, "stock": 50}).
Następnie wczytaj cztery kolejne dane wejściowe:
- Ciąg znaków
key1— pierwszy klucz do zaktualizowania - Ciąg znaków
value1— nowa wartość dlakey1 - Ciąg znaków
key2— drugi klucz do zaktualizowania - Ciąg znaków
value2— nowa wartość dlakey2
Utwórz tablicę asocjacyjną na podstawie danych wejściowych JSON, a następnie:
- Zaktualizuj wartość przypisaną do
key1navalue1 - Zaktualizuj wartość przypisaną do
key2navalue2 - Wypisz zaktualizowaną wartość dla
key1 - Wypisz zaktualizowaną wartość dla
key2
Wypisz każdy wynik w osobnym wierszu.
Przykład:
Jeśli danymi wejściowymi są {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock i 45, wynikiem powinno być:
1099
45Jeśli danymi wejściowymi są {"city": "Paris", "country": "France", "population": 2000000}, city, London, country i UK, wynikiem powinno być:
London
UKSpróbuj swoich sił
<?php
// Odczytaj dane wejściowe JSON
$jsonInput = trim(fgets(STDIN));
// Odczytaj klucze i wartości do zaktualizowania
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// Przekształć JSON w tablicę asocjacyjną
$product = (array)json_decode($jsonInput, true);
// TODO: Napisz swój kod poniżej
// 1. Zaktualizuj wartość przypisaną do klucza key1 na value1
// 2. Zaktualizuj wartość przypisaną do klucza key2 na value2
// 3. Wypisz zaktualizowane wartości
?>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 logika7Tablice, część 2 — asocjacyjne
Wprowadzenie do tablic asocjacyjnychDostęp do wartości za pomocą kluczaModyfikowanie wartości za pomocą kluczaDodawanie nowych par klucz-wartośćSprawdzanie, czy klucz istniejePodsumowanie — magazyn danych klucz-wartość2Zmienne 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 decyzji3Podstawowe 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