2

次の列を持つ配列があります。

  • 仕事
  • 状態

ステータス列ではなく、タスクのリストを示すテーブルを印刷したいと思います。<del>代わりに、Status = 0 のタスクについては、タグを追加して、完了したタスクに取り消し線を付けたいと考えています。これが私の現在のコードです:

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

<del>これは正しいようですが、印刷するとすべてのタスクがタグ付きで印刷されます。したがって、基本的に「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)
4

1 に答える 1

0

キーと値のペアとして反復する代わりに、要素自体だけで反復し、個々のインデックスをチェックしてみてください。

foreach ($row as $task) {
    $value = ($task['Status'] == '0') ? '<del>' . $task['Task'] . '</del>' : $task['Task'];
    echo '<td>' . $value . '</td>';
}
于 2012-11-04T03:00:15.277 に答える