仅显示数组的特定值

时间:2012-08-22 10:43:56

标签: php arrays

我需要将数组'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

2 个答案:

答案 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