Menu
CoddyTech

Lặp qua khóa và giá trị

Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 50 trên 71.

Trong bài học trước, bạn đã học cách foreach giúp bạn truy cập từng giá trị trong một mảng. Nhưng nếu bạn cũng cần khóa thì sao? Điều này đặc biệt hữu ích khi làm việc với mảng kết hợp.

Vòng lặp foreach có cú pháp mở rộng, cung cấp cả khóa và giá trị ở mỗi lần lặp:

<?php
$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

foreach ($person as $key => $value) {
    echo "$key: $value\n";
}
?>

Kết quả in ra:

name: Alice
age: 25
city: Paris

Cú pháp foreach ($array as $key => $value) gán khóa hiện tại cho $key và giá trị tương ứng cho $value. Bạn có thể đặt tên cho các biến này tùy ý, miễn là tên dễ hiểu.

Cách này cũng áp dụng với mảng có chỉ số, trong đó các khóa là chỉ số số học:

<?php
$colors = ["red", "green", "blue"];

foreach ($colors as $index => $color) {
    echo "$index: $color\n";
}
?>

Kết quả đầu ra:

0: red
1: green
2: blue

Việc truy cập cả khóa lẫn giá trị giúp bạn dễ dàng hiển thị dữ liệu có nhãn hoặc thực hiện các thao tác phụ thuộc vào khóa.

challenge icon

Thử thách

Dễ

Đọc một dòng đầu vào chứa một đối tượng JSON biểu thị một sản phẩm với các khóa và giá trị (ví dụ: {"name":"Laptop","price":"999","stock":"25"}).

Dùng vòng lặp foreach với cú pháp khóa-giá trị để lặp qua dữ liệu sản phẩm. In ra từng khóa và giá trị tương ứng theo định dạng:

[key] => [value]

In ra từng cặp khóa-giá trị trên một dòng riêng.

Ví dụ 1:

Nếu đầu vào là {"name":"Laptop","price":"999","stock":"25"}, đầu ra sẽ là:

name => Laptop
price => 999
stock => 25

Ví dụ 2:

Nếu đầu vào là {"title":"PHP Basics","author":"John","pages":"350"}, đầu ra sẽ là:

title => PHP Basics
author => John
pages => 350

Ví dụ 3:

Nếu đầu vào là {"city":"Paris","country":"France"}, đầu ra sẽ là:

city => Paris
country => France

Tự làm thử

<?php
// Đọc đầu vào JSON
$input = trim(fgets(STDIN));

// Chuyển JSON thành mảng kết hợp
$product = (array)json_decode($input, true);

// TODO: Viết code bên dưới
// Dùng vòng lặp foreach với cú pháp khóa-giá trị để duyệt dữ liệu sản phẩm
// In ra từng khóa và giá trị theo định dạng: [key] => [value]

?>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Trình biên dịch PHP online