Перебор по ключам и значениям
Часть раздела Основы путешествия по 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Доступ к обоим ключам и значениям упрощает отображение данных с метками или выполнение операций, зависящих от ключа.
Задание
ЛегкоПрочитайте одну строку ввода, содержащую объект 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]
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений8Циклы
Цикл forЦикл whileЦикл foreachПеребор по ключам и значениямОператор breakОператор continueПовторение: перебор данных3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP