使用键和值进行循环
本课属于 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同时访问键和值,可以轻松显示带标签的数据,或执行依赖于键的操作。
挑战
简单读取一行输入,其中包含一个表示产品的 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] 的格式输出每个键和值
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: PHP 在线编译器