我可以用什么来做一个while语句只有当它的一部分是真的时才会发生

时间:2013-11-16 18:43:35

标签: php while-loop

我有这个while语句从数组中提取信息。我只希望它列出条目,如果其中一个数组项$history_type不等于“费用”。

这是我到目前为止所拥有的

$i = 0;
while ($i <= 9):
    $history_date = $history[result][$i][Date];
    $history_date_format = gmdate("m-d-y", $history_date);      
    $history_type = $history[result][$i][Type];
    if($history_type == 'spent'):
        $history_type = 'Buy';
        elseif($history_type == 'earned'):
            $history_type = 'Sold';
        elseif ($history_type == 'fee'):
            $history_type = 'Fee';
        else:
            $history_type = 'Error';
    endif;
    $history_usd = $history[result][$i][Balance][value];
    $history_btc = $history[result][$i][Trade][Amount][value];
    $history_amt = $history[result][$i][Value][value];
    $history_rate = round($history_amt / $history_btc,2);
    echo '<tr><td>'.$history_type.'</td><td>'.$history_rate.'</td><td>'.$history_amt.'</td><td>'.$history_usd.'</td><td>'.$history_btc.'</td><td>'.$history_date_format.'</td></tr>';
    $i++;
endwhile;

2 个答案:

答案 0 :(得分:2)

定义$ history_type后添加一行:

if($history_type == 'fee') continue;

continue;语句在步骤结束时移动到当前结束。

PS。您可能希望将$i++移到该语句的顶部,因为它也会被跳过。

答案 1 :(得分:0)

替换你的:

echo '<tr><td>'.$history_type.'</td><td>'.$history_rate.'</td><td>'.$history_amt.'</td><td>'.$history_usd.'</td><td>'.$history_btc.'</td><td>'.$history_date_format.'</td></tr>';

使用:

if($history_type != 'Fee'):
  echo '<tr><td>'.$history_type.'</td><td>'.$history_rate.'</td><td>'.$history_amt.'</td><td>'.$history_usd.'</td><td>'.$history_btc.'</td><td>'.$history_date_format.'</td></tr>';
endif;

这就是说,在这个循环迭代中,如果$ history_type不等于'Fee'那么echo'.....'