2017-09-27 49 views
-1

我試圖顯示數組中的變量。我正在使用foreach循環,但是我需要在循環之前顯示$ order ['campaign_name'],以便它只顯示一次。我怎樣才能做到這一點?如果我將其更改爲$ orders ['campaign_name'],則會出現未定義的索引錯誤。使用foreach循環外數組中的變量

<div class="table-responsive"> 
      <table class="table" id="component-table"> 
       <?php if ($orders) { ?> 
       <?php foreach ($orders as $order) { ?> 
       <thead> 
       <tr> 
        <td colspan=100%><h3><?php echo $order['campaign_name']; ?></h3></td> 
       </tr> 
       </thead> 

       <tbody> 
       <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 } ?> 
       <?php } else { ?> 
       <tr> 
        <td class="text-center" colspan="8"><?php echo $text_no_results; ?></td> 
       </tr> 
       <?php } ?> 
       </tbody> 
      </table> 
      </div> 
+0

該變量超出了範圍,所以你不能引用它。 – Strikegently

+2

而不是將它放在'foreach'上,你可以在循環之上echo $ orders [0] ['campaign_name']' – Manav

+0

所有的廣告系列名稱都一樣嗎? –

回答

1

您正試圖獲得未循環之前存在的價值。您直接撥打VALUE。 輕鬆只是把索引值放在數組 echo $ orders [0] ['campaign_name'] 它會打印你的值。

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