You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我的PHP代码哪里出错了?如何将循环结果存入变量并输出城市列表

修正PHP字符串拼接中的循环问题

我来帮你搞定这个问题~你当前的代码核心错误在于不能直接在字符串拼接操作里嵌入foreach循环,PHP的语法规则不允许这种写法,会直接触发语法错误。咱们可以用两种常见的方式来修正:

方法一:分步拼接字符串

这是最直观的写法,把字符串拆分成开头、循环体、结尾三个部分来处理:

$list_of_cities = ['Delhi', 'Patna'];
// 先初始化开头的HTML内容
$display = "<p>Cities</p><p><ul>";
// 遍历城市数组,逐个追加<li>标签到变量中
foreach($list_of_cities as $city) {
    $display .= "<li>" . $city . "</li><br>";
}
// 最后拼接结尾的HTML和链接
$display .= "</ul></p><p><a href='" . get_site_url() . "/contact-us/'>Test</a></p>";

这样拆分后,变量$display会逐步累积所有需要的HTML内容,完全符合你的需求。

方法二:用array_map + implode简化写法

如果想让代码更紧凑,可以用数组处理函数来减少循环的代码量:

$list_of_cities = ['Delhi', 'Patna'];
// 把每个城市转换成对应的<li>标签
$city_html_items = array_map(function($city) {
    return "<li>" . $city . "</li><br>";
}, $list_of_cities);
// 拼接所有内容:开头 + 处理后的城市列表 + 结尾
$display = "<p>Cities</p><p><ul>" . implode('', $city_html_items) . "</ul></p><p><a href='" . get_site_url() . "/contact-us/'>Test</a></p>";

array_map会遍历数组把每个元素转换成指定的HTML格式,implode则把所有转换后的字符串合并成一个整体,再和前后的HTML拼接即可。

两种方法都能实现你要的功能,你可以根据自己的代码风格选择~

内容的提问来源于stack exchange,提问作者Javed Akhtar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 12:52:27