2013年3月18日月曜日

PHP 繰り返し処理

for命令

for (初期化式; 条件式; 変化式){
    処理1;
}
<?php
for ($i=1; $i < 10; $i++ ) {
 print("ループ: $i <br/>");
}
?>
実行結果


foreach命令

foreacg (配列 as 変数) {
    処理1;
}

以下は配列の中身を表示するサンプルです。
<?php
$ary = array('aaa', 'bbb', 'ccc', 'ddd', 'eee');
foreach ($ary as $value) {
 print($value .'<br/>');
}
?>
実行結果



以下は連想配列の中身を表示するサンプルです。
<?php
$ary['key1'] = 'aaa';   
$ary['key2'] = 'bbb';   
$ary['key3'] = 'ccc'; 

print('■キーを出力<br/>');
foreach ($ary as $key){
 print($key .'<br/>');
}

print('■値を出力<br/>');
foreach($ary as $value) {
 print($value .'<br/>');
}

print('■キーと値を出力<br/>');
foreach($ary as $key=>$value) {
 print("キー: $key 、値: $value" .'<br/>');
}
?>
実行結果


while命令

while (条件式) {
    処理1;
}
<?php
$i = 1;
while ($i < 10 ) {
 print("ループ: $i <br/>");
    $i++;
}
?>
実行結果


do…while命令

do {
    処理1;
while (条件式);
<?php
$i = 1;
do {
 print("ループ: $i <br/>");
    $i++;
} while ($i < 10)
?>
実行結果


continue命令とbreak命令

ループをスキップするcontinue命令と、ループを中断するbreak命令ですが
オプションの引数で階層を指定することができ、ネストされたループのどのループをスキップまたは中断するかを指定できます。
引数を省略すると1が指定されたことになります。

以下の例だとネストされたループの内側をスキップします。
<?php
for ($i=1; $i<5; $i++ ) {
    for ($j=1; $j<10; $j++) {
        //$jが偶数であればスキップ、内側のループをスキップ
        if ($j % 2 == 0) {
            continue;
        }
        print("$i - $j <br/>");
    }
}
?>
実行結果


以下の例だとネストされたループの外側をスキップします。
<?php
for ($i=1; $i<5; $i++ ) {
    for ($j=1; $j<10; $j++) {
        //$jが偶数であればスキップ、外側のループをスキップ
        if ($j % 2 == 0) {
            continue 2;
        }
        print("$i - $j <br/>");
    }
}
?>
実行結果

0 件のコメント: