Laços com Chaves e Valores
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 50 de 71.
Na aula anterior, você aprendeu como foreach dá acesso a cada valor em um array. Mas e se você também precisar da chave? Isso é especialmente útil ao trabalhar com arrays associativos.
O foreach loop possui uma sintaxe estendida que fornece tanto a chave quanto o valor em cada iteração:
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
foreach ($person as $key => $value) {
echo "$key: $value\n";
}
?>Isso produz:
name: Alice
age: 25
city: ParisA sintaxe foreach ($array as $key => $value) atribui a chave atual a $key e o valor correspondente a $value. Você pode nomear essas variáveis como quiser—basta mantê-las descritivas.
Isso também funciona com arrays indexados, onde as chaves são os índices numéricos:
<?php
$colors = ["red", "green", "blue"];
foreach ($colors as $index => $color) {
echo "$index: $color\n";
}
?>Isso produz:
0: red
1: green
2: blueTer acesso tanto às chaves quanto aos valores facilita a exibição de dados rotulados ou a realização de operações que dependem da chave.
Desafio
FácilLeia uma única linha de entrada contendo um objeto JSON representando um produto com chaves e valores (por exemplo, {"name":"Laptop","price":"999","stock":"25"}).
Use um loop foreach com a sintaxe chave-valor para iterar pelos dados do produto. Imprima cada chave e seu valor correspondente no formato:
[key] => [value]Imprima cada par chave-valor em uma linha separada.
Exemplo 1:
Se a entrada for {"name":"Laptop","price":"999","stock":"25"}, a saída deve ser:
name => Laptop
price => 999
stock => 25Exemplo 2:
Se a entrada for {"title":"PHP Basics","author":"John","pages":"350"}, a saída deve ser:
title => PHP Basics
author => John
pages => 350Exemplo 3:
Se a entrada for {"city":"Paris","country":"France"}, a saída deve ser:
city => Paris
country => FranceFolha de consulta
O foreach loop pode fornecer tanto a chave quanto o valor em cada iteração usando a sintaxe estendida:
foreach ($array as $key => $value) {
// use $key and $value
}Exemplo com um array associativo:
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
foreach ($person as $key => $value) {
echo "$key: $value\n";
}Saída:
name: Alice
age: 25
city: ParisEssa sintaxe também funciona com arrays indexados, onde as chaves são índices numéricos:
$colors = ["red", "green", "blue"];
foreach ($colors as $index => $color) {
echo "$index: $color\n";
}Saída:
0: red
1: green
2: blueExperimente você mesmo
<?php
// Ler a entrada JSON
$input = trim(fgets(STDIN));
// Converter JSON para array associativo
$product = (array)json_decode($input, true);
// TODO: Escreva seu código abaixo
// Use um loop foreach com sintaxe chave-valor para iterar pelos dados do produto
// Imprima cada chave e valor no formato: [key] => [value]
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
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 Decisions8Laços
Laço ForLaço WhileLaço ForeachLaços com Chaves e ValoresInstrução BreakInstrução ContinueResumo - Iterando Sobre Dados3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators