Перебор ключей и значений
Часть раздела Основы путешествия по PHP на Coddy — урок 50 из 71.
В предыдущем уроке вы узнали, как foreach предоставляет доступ к каждому значению в массиве. Но что, если вам также нужен ключ? Это особенно полезно при работе с ассоциативными массивами.
Цикл 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-объект, представляющий продукт с ключами и значениями (например, {"name":"Laptop","price":"999","stock":"25"}).
Используйте цикл foreach с синтаксисом ключ-значение для перебора данных продукта. Выводите каждый ключ и соответствующее ему значение в формате:
[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Шпаргалка
Цикл foreach может предоставлять как ключ, так и значение на каждой итерации с использованием расширенного синтаксиса:
foreach ($array as $key => $value) {
// use $key and $value
}Пример с ассоциативным массивом:
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
foreach ($person as $key => $value) {
echo "$key: $value\n";
}Вывод:
name: Alice
age: 25
city: ParisЭтот синтаксис также работает с индексированными массивами, где ключи являются числовыми индексами:
$colors = ["red", "green", "blue"];
foreach ($colors as $index => $color) {
echo "$index: $color\n";
}Вывод:
0: red
1: green
2: blueПопробуйте сами
<?php
// Считываем JSON-входные данные
$input = trim(fgets(STDIN));
// Преобразуем JSON в ассоциативный массив
$product = (array)json_decode($input, true);
// TODO: Напишите свой код ниже
// Используйте цикл foreach с синтаксисом ключ-значение для итерации по данным продукта
// Выводите каждый ключ и значение в формате: [key] => [value]
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions8Циклы
Цикл forЦикл whileЦикл foreachПеребор ключей и значенийОператор breakОператор continueИтог - Итерация по данным3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators