2017-09-27 1 views
-1

Ich versuche, Variablen aus einem Array anzuzeigen. Ich benutze eine foreach-Schleife, aber ich muss $ order ['campaign_name'] vor der Schleife anzeigen, so dass es nur einmal angezeigt wird. Wie kann ich das machen? Wenn ich es zu $ ​​orders ['campaign_name'] ändere, erhalte ich einen undefinierten Indexfehler.mit Variable aus Array außerhalb der foreach Schleife

<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

Die Variable liegt außerhalb des Gültigkeitsbereichs, daher können Sie sie nicht referenzieren. – Strikegently

+2

anstatt es in die 'foreach' zu setzen, können Sie über der Schleife, echo $ orders [0] ['campaign_name']' – Manav

+0

Sind alle Kampagnennamen gleich? –

Antwort

1

Sie versuchen, jenen Wert zu erhalten, die nicht vor der Schleife vorhanden ist. Sie rufen direkt VALUE auf. Einfach Indexwert hinter Array setzen echo $ orders [0] ['campaign_name'] Es wird Ihren Wert drucken.

0

Sie müßten den Index des Arrays wissen, müssen Sie zeigen wollen, aber wenn Sie den ersten Index des Arrays zeigen wollen, können Sie $orders[0]['component_name'] verwenden.

<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

Ihr Kampagnenname wird weiterhin angezeigt, weil Sie ihn in Ihrer foreach-Schleife haben. Wenn Sie möchten, dass es nur einmal angezeigt wird, stellen Sie sicher, dass es über Ihrer foreach-Schleife platziert wird.

Hier ist ein weniger überladenes Beispiel lernen:

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