0

'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 です。最初の行は取り除く必要がある「間違った」もので、2 番目の行は「正しい」ものです。

5454545454545454545454545454545454545454545454545454545454
Bilde šeit      Pašdizainēts alus       54      Cena šeit

助けてくれてありがとう!ブルグズ、レイヴィス

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;
  }
}

それが正しいキーであり、0より大きい場合にのみ印刷されるようにするために、ifにその追加が必要です

于 2012-08-22T10:51:38.587 に答える