Menu
Coddy logo textTech

Перебор по ключам и значениям

Часть раздела Основы путешествия по PHP на Coddy. Урок 50 из 71.

В предыдущем уроке вы узнали, как foreach предоставляет доступ к каждому значению в array. Но что, если вам также нужен key? Это особенно полезно при работе с associative array.

Цикл foreach имеет расширенный синтаксис, который предоставляет и ключ, и значение на каждой итерации:

<?php
$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

foreach ($person as $key => $value) {
    echo "$key: $value\n";
}
?>

Это выводит:

name: Alice
age: 25
city: Paris

Синтаксис foreach ($array as $key => $value) присваивает текущий ключ переменной $key, а соответствующее значение — переменной $value. Вы можете назвать эти переменные как угодно, главное, чтобы их имена были описательными.

Это также работает с индексированными массивами, где ключами являются числовые индексы:

<?php
$colors = ["red", "green", "blue"];

foreach ($colors as $index => $color) {
    echo "$index: $color\n";
}
?>

Это выводит:

0: red
1: green
2: blue

Доступ к обоим ключам и значениям упрощает отображение данных с метками или выполнение операций, зависящих от ключа.

challenge icon

Задание

Легко

Прочитайте одну строку ввода, содержащую объект JSON, представляющий product с ключами и значениями (например, {"name":"Laptop","price":"999","stock":"25"}).

Используйте цикл foreach с синтаксисом key-value, чтобы перебрать данные product. Выведите каждый ключ и соответствующее ему значение в формате:

[key] => [value]

Выведите каждую пару ключ-значение в отдельной строке.

Пример 1:

Если ввод имеет вид {"name":"Laptop","price":"999","stock":"25"}, вывод должен быть следующим:

name => Laptop
price => 999
stock => 25

Пример 2:

Если ввод имеет вид {"title":"PHP Basics","author":"John","pages":"350"}, вывод должен быть следующим:

title => PHP Basics
author => John
pages => 350

Пример 3:

Если ввод имеет вид {"city":"Paris","country":"France"}, вывод должен быть следующим:

city => Paris
country => France

Попробуйте сами

<?php
// Прочитать входные данные JSON
$input = trim(fgets(STDIN));

// Преобразовать JSON в ассоциативный массив
$product = (array)json_decode($input, true);

// TODO: Напишите ваш код ниже
// Используйте цикл foreach с синтаксисом ключ-значение для перебора данных продукта
// Выведите каждый ключ и значение в формате: [key] => [value]

?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор PHP