我需要将数组$form->data
中键'pasdiz_alus'
的特定值显示到表单元格中。只有当关键字'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
脚本中的问题就在这里:
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 } ?>
foreach($array as $k => $v)
{
if($k == 'pasdiz_alus' && $v > 0)
{
echo $v;
}
}
您需要在if中添加该项,以确保只有当它是正确的键并且其更大的0 时才打印该项