【问题标题】:Loop through Array with conditional output based on key/value pair基于键/值对的条件输出循环数组
【发布时间】:2012-11-04 02:20:19
【问题描述】:

我有一个包含以下列的数组:

  • 任务
  • 状态

我想打印一个显示任务列表的表格,但不显示状态列。相反,对于状态 = 0 的任务,我想添加标签 <del> 以划掉已完成的任务。这是我当前的代码:

foreach ($row as $key => $val){
if ($key != 'Status') print "<td>$val</td>";
else if ($val == '0') print "<td><del>$val</del></td>";
}

这似乎是正确的,但是当我将其打印出来时,它会打印带有&lt;del&gt; 标签的所有任务。所以基本上每次都会运行“else”子句。

这里是 var_dump($row):

array
  'Task' => string 'Task A' (length=6)
  'Status' => string '3' (length=1)
array
  'Task' => string 'Task B' (length=6)
  'Status' => string '0' (length=1)

【问题讨论】:

  • 显示var_dump( $row);的输出
  • 在您的问题中包含您的 $row,我们可能会提供更多帮助。
  • OK - 刚刚将它添加到底部的问题中。谢谢!

标签: php foreach


【解决方案1】:

与其作为键/值对进行迭代,不如尝试仅使用元素本身进行迭代并检查各个索引:

foreach ($row as $task) {
    $value = ($task['Status'] == '0') ? '<del>' . $task['Task'] . '</del>' : $task['Task'];
    echo '<td>' . $value . '</td>';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2019-02-07
    相关资源
    最近更新 更多