在foreach循环之外使用数组中的变量

时间:2017-09-27 18:06:19

标签: php html

我试图从数组中显示变量。我正在使用foreach循环,但是我需要在循环之前显示$ order [' campaign_name'],以便它只显示一次。我怎样才能做到这一点?如果我将其更改为$ orders [' campaign_name'],我会收到未定义的索引错误。

div {
  margin-top: 12px;
  width: 400px;
  height: 50px;
  outline: 1px solid #000;
  background-image: url(http://i.magaimg.net/img/1h5k.png);
  background-position: center center;
  background-repeat: no-repeat;
}

#a {
  background-size: cover;
}
#b {
  background-size: 100% 100%;
}
#c {
  background-size: contain;
}
#d {
  /* Nothing */
}

3 个答案:

答案 0 :(得分:1)

您正试图获取循环前不存在的值。您直接调用VALUE。 很容易将索引值放在数组后面  echo $ orders [0] [' campaign_name'] 它会打印你的价值。

答案 1 :(得分:0)

您需要知道要显示的数组的索引,但是如果要显示数组的第一个索引,可以使用$orders[0]['component_name']

  <div class="table-responsive">
            <table class="table" id="component-table">
              <?php if ($orders) { ?>
              <thead>
                <tr>
                  <td colspan=100%><h3><?php echo $orders[0]['campaign_name']; ?></h3></td>
                </tr>
              </thead>
              <tbody>
              <?php foreach ($orders as $order) { ?>    
                <tr class="campaign-list" id="campaign-list">
                  <td><?php echo $order['component_name']; ?></td>
                  <td><?php echo $order['component_owner']; ?></td>
                  <td><?php echo $order['component_date']; ?></td>
                  <td><?php echo $order['campaign_code']; ?></td>
                </tr>
                <?php } ?>
                </tbody>
                <?php } else { ?>
                <tbody>
                <tr>
                  <td class="text-center" colspan="8"><?php echo $text_no_results; ?></td>
                </tr>
                </tbody>
                <?php } ?>
            </table>
          </div>

答案 2 :(得分:0)

您的广告系列名称会继续响应,因为您已将其置于foreach循环中;如果您希望它只显示一次,请确保将其放在foreach循环上方。

这是一个不那么杂乱的例子:

<table>
...
<?php
if ($orders): 
    echo $order['campaign_name'];
    foreach($orders as $order):
        echo '...'; // other components
    endforeach;
else:
    echo $text_no_results;
endif;
?>
...
</table>