当为嵌入多个记录的数组运行foreach循环时,我不能让数组每个记录只回显一个数组。相反,它会在每个结果中显示每个实例的所有数组记录。我正在读取一个CSV文件,这个文件可以有25条记录,或者500条记录(记录的数量从未知道),但在阅读"选项"字段,所有记录的数组,正在结果中显示。这是我正在运行的代码:
$option_list = explode(',', $csvdata['Options']);
foreach ($option_list as $feature) {
$output .= '<li>' . $feature . '</li>';
}
$content = '<ul>' . $output . '</ul>';
如您所见,我只是创建一个无序列表。虽然我成功创建了无序列表,但&#34;选项&#34;字段在结果中显示为一个巨大的无序列表。它没有列出每个特定单个记录的单个数组。
以下是CSV格式:
Year Make Model Color Options (the array)
2010 Chevy Camaro Black 2dr, convertible, 6.2L, V8
2011 Dodge Charger Red 2dr, coupe, 3.6L, V6
2013 Ford F250 Blue 4WD, Crew Cab, V10, Tow Package
输出会创建以下无序列表:
<ul>2010 Chevy Camaro Black
<li>2dr
<li>convertible
<li>6.2L
<li>V8
<li>2dr
<li>coupe
<li>3.6L
<li>V6
<li>4WD
<li>Crew Cab
<li>V10
<li>Tow Package</li></ul>
它为每条记录都这样做。我需要无序列表来表示它与CSV文件中的相关记录,并结束每条记录的循环。请让我知道我错过了什么。
答案 0 :(得分:2)
您在循环之前没有清除$input
,因此它仍然包含CSV中上一行的列表项。只需添加
$output = '';
在foreach
陈述之前。