我需要将数组'pasdiz_alus'
中的键$form->data
的特定值显示到表格单元格中。只有当密钥'pasdiz_alus'
的值大于'0'
时,我才需要显示此表格行。
这个代码如下所示,但问题是输出还显示了我的表行上方的键'pasdiz_alus'
的值,并且它显示为数组键数的多次。
如何摆脱“'pasdiz_alus'
x次数组中键数的显示值(在我的情况下为29次 - 数组中有29个键)”?在这种情况下,它是:5454545454545454 ......
我的代码是:
<table style="width: 800px;">
<tbody>
<?php
if ($form->data['pasdiz_alus'] > 0){
echo '<tr><td style="width: 100px;">Bilde šeit</td><td style="width: 500px;"> <strong>Pašdizainēts alus</strong></td>';
foreach($form->data as $key => $value) {
if($key === 'pasdiz_alus')
echo '<td style="width: 100px;">';
echo $form->data['pasdiz_alus'];
echo '</td>';
}
echo '<td style="width: 100px;">Cena šeit</td></tr>';
}
?>
</tbody>
</table>
这是输出显示,在这种情况下,'pasdiz_alus'
的值为54
第一行是我需要摆脱的“错误”行,第二行是“正确”行。
5454545454545454545454545454545454545454545454545454545454
Bilde šeit Pašdizainēts alus 54 Cena šeit
感谢您的帮助! Brgds,Raivis
答案 0 :(得分:4)
脚本中的问题出现在:
if($key === 'pasdiz_alus') // <-- missing opening "{"
echo '<td style="width: 100px;">'; // <-- inside the "if"
echo $form->data['pasdiz_alus']; // <-- OUTSIDE the "if"
echo '</td>'; // <-- OUTSIDE the "if"
} // <-- this matches the foreach "{"
为什么要循环所有数组键,而不是直接访问它?
<table style="width: 800px;">
<tbody>
<?php if ($form->data['pasdiz_alus'] > 0) { ?>
<tr>
<td style="width: 100px;">Bilde šeit</td>
<td style="width: 500px;"><strong>Pašdizainēts alus</strong></td>
<td style="width: 100px;"><?=$form->data['pasdiz_alus']?></td>
<td style="width: 100px;">Cena šeit</td>
</tr>
<?php } ?>
</tbody>
</table>
这可以解决您的问题,但我建议您在打开表格之前移动if
部分:
<?php if ($form->data['pasdiz_alus'] > 0) { ?>
<table style="width: 800px;">
<tbody>
<tr>
<td style="width: 100px;">Bilde šeit</td>
<td style="width: 500px;"><strong>Pašdizainēts alus</strong></td>
<td style="width: 100px;"><?=$form->data['pasdiz_alus']?></td>
<td style="width: 100px;">Cena šeit</td>
</tr>
</tbody>
</table>
<?php } ?>
答案 1 :(得分:0)
foreach($array as $k => $v)
{
if($k == 'pasdiz_alus' && $v > 0)
{
echo $v;
}
}
你需要在你的if中添加if,以确保它只在正确的键上打印并且更大0