🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

【PHP入门】如何使用foreach循环动态显示通知/新闻列表

在网站上经常能看到“通知”或“新闻”列表,对吧?每次有新信息时都手动更新HTML,这是一件很麻烦的事。实际上,使用PHP的foreach循环,你就可以将这种繁琐的工作自动化,轻松创建一个能随时显示最新信息的动态列表。

本文将通过一个实用的通知列表示例,以浅显易懂的方式解说PHP `foreach`循环从基础到应用的使用方法,即使是编程初学者也能通过复制粘贴体验到“让代码跑起来”的乐趣。让我们一起来掌握如何逐条取出存储在数组中的数据,并将其显示为HTML列表吧!

要准备运行PHP(开发环境),如果还没有搭建XAMPP的朋友,请参考【PHP入门】XAMPP下载及安装方法完全解析!。 安装后,将PHP文件放置在指定文件夹(如 `htdocs`)中,准备工作就完成了!

1. 基础中的基础!PHP数组与foreach循环

首先,为了理解`foreach`是做什么的,我们先来看看它的好伙伴——“数组”。

数组就像一个可以存放多个值的箱子。例如,如果你想将通知信息作为“日期”和“标题”的组合来管理,可以像下面这样创建一个数组。

<?php
// 存放新闻信息的数组
$news_items = [
  [
    "date" => "2025-07-03",
    "title" => "关于夏季休假的通知"
  ],
  [
    "date" => "2025-07-01",
    "title" => "新服务“〇〇”已上线"
  ],
  [
    "date" => "2025-06-20",
    "title" => "网站已更新"
  ]
];

// 查看数组内容(用于调试)
print_r($news_items);
?>

`foreach`循环的作用就是从这个叫做数组的“箱子”里,把内容一个一个地取出来处理。它的语法非常简单。

foreach (数组 as 临时存放取出元素的变量) { ...处理... }

让我们用这个语法,从刚才的数组中只把标题按顺序取出来显示一下吧。

<?php
$news_items = [
  ["date" => "2025-07-03", "title" => "关于夏季休假的通知"],
  ["date" => "2025-07-01", "title" => "新服务“〇〇”已上线"],
  ["date" => "2025-06-20", "title" => "网站已更新"]
];

// 从数组中逐条取出新闻信息
foreach ($news_items as $item) {
  // 显示取出的新闻标题
  echo $item['title'] . "\n";
}
?>

就这样,`foreach`会自动重复处理,直到数组中的元素全部取完为止。这就是动态列表生成的核心部分。

2. 实践!用foreach创建通知列表

接下来是正题。我们用刚才的数组和`foreach`循环来创建一个可以在网页上显示的HTML格式的通知列表。下面的代码是HTML和PHP结合的最基本形式,直接复制粘贴到文件里就可以在浏览器中查看效果。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>通知列表</title>
    <style>
        body { font-family: sans-serif; line-height: 1.6; padding: 20px; }
        .news-list { list-style: none; padding: 0; border-top: 1px solid #ccc; }
        .news-list li { padding: 15px 10px; border-bottom: 1px solid #ccc; }
        .news-date { font-weight: bold; margin-right: 1em; color: #555; }
    </style>
</head>
<body>

    <h1>通知</h1>

    <?php
    // 准备通知信息数组
    $notices = [
        [
            "date" => "2025-07-03",
            "title" => "关于夏季休假的通知"
        ],
        [
            "date" => "2025-07-01",
            "title" => "新服务“〇〇”已上线"
        ],
        [
            "date" => "2025-06-20",
            "title" => "网站已更新"
        ]
    ];
    ?>

    <ul class="news-list">
        <?php foreach ($notices as $notice): ?>
            <li>
                <span class="news-date"><?php echo htmlspecialchars($notice['date']); ?></span>
                <span class="news-title"><?php echo htmlspecialchars($notice['title']); ?></span>
            </li>
        <?php endforeach; ?>
    </ul>

</body>
</html>

这段代码的关键点是在`