0

我需要将'pasdiz_alus'数组中键的特定值显示$form->data到表格单元格中。'pasdiz_alus'只有当 key的值大于时,我才需要显示这个表行'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,雷维斯

4

2 回答 2

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 } ?>
于 2012-08-22T10:50:48.483 回答
0
foreach($array as $k => $v) 
{
  if($k == 'pasdiz_alus' && $v > 0) 
  {
    echo $v;
  }
}

您需要在 if 中添加该添加项以确保仅在它是正确的键且其更大的 0 时才打印

于 2012-08-22T10:51:38.587 回答