2016-11-03 6 views
0
foreach($resorts as $askiarea) 
{ 

    $askiarea = (array) $askiarea; 

    $askiarea['ReportType'] = $askiarea['resortStatus']; 

    $flag=1; 


    if (($askiarea['ReportType'] ==6) || ($askiarea['ReportType'] =="6")) 
    { 

     if($flag ==1) 

    echo '<tr><th colspan="6" text-align="left"><div class="region-headline">Opening Soon For Snow Sports</div></th></tr>';} 

    $flag = 0; 



} 

私がこれを試すたびに、ヘッダが複数ある場合は、ヘッダが1つだけエコーされる必要があります。phpのループスルー配列値と停止ループとエコーヘッダ

答えて

0

は、break文を使用します。もちろん、ヘッダが各繰り返しで印刷されますので、あなたは、ReportTypeを確認する前に、各反復で$flag = 1を設定しているブレークhere

0

中括弧を追加してください:

if($flag ==1) { 

    echo '<tr><th colspan="6" text-align="left"><div class="region-headline">Opening Soon For Snow Sports</div></th></tr>';} 

    $flag = 0; 
} 
0

について

foreach($resorts as $askiarea) { 
    $askiarea = (array) $askiarea; 
    $askiarea['ReportType'] = $askiarea['resortStatus']; 
    if (($askiarea['ReportType'] ==6) || ($askiarea['ReportType'] == "6")) { 
     echo '<tr><th colspan="6" text-align="left"><div class="region-headline">Opening Soon For Snow Sports</div></th></tr>';} 
     break; 
    } 
} 

より。 $flag = 0はそこに何もしていません。

foreachループの前に$flag = 1を設定すると動作します。

0

あなたの配列がそもそも見えますが、ここでは非常に単純化した例である方法を少しわからない:

<?php 
$resorts = [0=>['ReportType'=>6],1=>['ReportType'=>6],2=>['ReportType'=>"6"]]; 

for ($c = 0; $c < count($resorts); $c++) { 
    if ($resorts[$c]['ReportType'] == 6) { 
     echo '<tr><th colspan="6" text-align="left"><div class="region-headline">Opening Soon For Snow Sports</div></th></tr>'; 
     break; 
    } 
} 
?> 

それは、元の配列(私はそれが多次元配列だと仮定?)と繰り返し処理に基づいて値をカウントしそれが見つかった場合はそれを破る。 PHPではintと文字列の区別がないため、== 6== "6"の両方をチェックする必要はありません。

関連する問題