【问题标题】:PHP foreach Array list for each recordPHP foreach 每条记录的数组列表
【发布时间】:2015-01-27 01:52:26
【问题描述】:

当为嵌入在多条记录中的数组运行 foreach 循环时,我无法让数组只回显每条记录的一个数组集。相反,它在每个结果中显示每个实例的所有数组记录。我正在读取一个 CSV 文件,这个文件可以有 25 条记录,或者 500 条记录(记录的数量永远不知道),但是在读取“选项”字段时,所有记录的数组都显示在结果。这是我正在运行的代码:

$option_list = explode(',', $csvdata['Options']);
foreach ($option_list as $feature) {
    $output .= '<li>' . $feature . '</li>';
}

$content = '<ul>' . $output . '</ul>';

如您所见,我只是在创建一个无序列表。虽然我成功地创建了无序列表,但“选项”字段中的每个数组都在结果中显示为一个巨大的无序列表。它没有列出每个特定记录的单个数组。

这是 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 文件中相关的记录,并结束每个记录的循环。请让我知道我缺少什么。

【问题讨论】:

    标签: php arrays loops foreach quit


    【解决方案1】:

    您没有在循环之前清除 $input,因此它仍然包含 CSV 中上一行的列表项。只需添加

    $output = '';
    

    foreach 语句之前。

    【讨论】:

    • 谢谢巴尔玛。你是如何让 CSV 表在 SO 上格式化的?我没有看到它的选项。顺便说一句,我现在正在测试你的答案。
    • 在 SO 编辑器中使用 Ctl-k{} 工具来标记文字代码块。
    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 2022-11-10
    相关资源
    最近更新 更多