Menu
CoddyTech

使用键和值进行循环

本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 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

同时访问键和值,可以轻松显示带标签的数据,或执行依赖于键的操作。

challenge icon

挑战

简单

读取一行输入,其中包含一个表示产品的 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

亲手试试

<?php
// 读取 JSON 输入
$input = trim(fgets(STDIN));

// 将 JSON 转换为关联数组
$product = (array)json_decode($input, true);

// TODO:在下方编写你的代码
// 使用键值对语法的 foreach 循环遍历 product 数据
// 按 [key] => [value] 的格式输出每个键和值

?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: PHP 在线编译器