PHPのループ。 foreach ループで配列要素の値を変更する例

04.12.2023

for ループの構文は次のとおりです。

このループは、キーワード for と、その後にセミコロンで区切られた 3 つの式を含む括弧で構成されます。 実行順序は次のとおりです。

  1. ループの開始時に初期化式が実行され、常に最初に 1 回だけ評価 (実行) されます。
  2. 以下は条件式です。 各反復の開始前に、条件式 (実行条件) の値が計算され、それが TRUE と評価された場合はループの本体が実行され、FALSE と評価された場合はループが完了します。 最初のテストで条件が false の場合、ループの本体は一度も実行されません。
  3. 最後に、ループ本体のアクションを実行した後、最後の式 (条件の後の次の式) が処理されます。 この場合、これはインクリメント式であり、カウンター変数の値をインクリメントします。

for ループの簡単な例:

実際、for ループはさまざまな用途に使用できるため、ほぼ汎用的です。

ヘッダー部分のない for ループ

for ループ ヘッダー内の各式が欠落している可能性があります。

初期化が必要ない場合、または他の場所で行われる場合、初期化式は必要ありません。 前の例を少し書き直してみましょう。

セミコロンは式が欠落していることを示すため、必須であることに注意してください。 条件式がない場合は、条件に値 TRUE を入れるのと同じです。

この場合、ループは無限に実行されます。 インクリメント式がない場合は、それをループの本体内に含める必要があります。そうしないと、ループが無限に実行されます。

3 つの式の一部またはすべてを省略できますが、常にセミコロン (;) を使用する必要があることに注意してください。

for ループの先頭にある複数の式

for ループ ヘッダーでは、セミコロンで区切られた各式に、カンマで区切られた複数の式を含めることができます。 したがって、あらゆる複雑な式を使用できます。

"; } ?>

実行条件でカンマで区切られた複数の式が使用されている場合、それらはすべて評価されますが、結果は最後の式から取得されます。

入れ子になったループ

条件ステートメントと同様に、ループはネストできます。 1 レベルのネストを含む簡単な例:

"; for ($j = 0; $j< 2; $j++) { echo "Вложенный цикл.
"; } } ?>

スクリプトを作成するとき、同じアクションを複数回実行する必要があることがよくあります。 これがサイクルの目的です。 PHPのループ他の言語と同様に、いくつかのタイプに分類されます。

  1. for カウンタを使用したループ
  2. while、do-while 条件によるループ
  3. 配列 foreach を走査するループ

たとえば、オンライン ストアを作成する場合、画面に商品を表示する前に、在庫残高が 10 未満の商品を削除する必要があります。これを行うには、 配列をループする商品を使用し、条件演算子 if を使用して、倉庫内の商品の数を確認し、倉庫内の値が 10 未満であるすべての商品を配列から削除します。

PHPのforループ

for カウンタを使用したループ- 一定の回数実行されました。 例を見てみましょう:

"; } ?>

この例では、ループが 11 回実行されます。 0 (変数 $i = 0 のため) から 10 ($i のため)<= 10). Каждую итерацию $i будет увеличено на 1 ($i++). Чтобы было понятней, сделаем еще один пример:

"; } ?>

ループは 5 から 9 まで実行されます($i< 10 (в предыдущем примере было <= 10)).

ループは逆の順序で実行することもできます。

5; $i--) ( echo "反復番号: $i
"; } ?>

サイクルは 10 から 5 まで実行されます。

このサイクルは特定のステップで実行することもできます。例を見てみましょう。

"; } ?>

ループは 5 ステップで 3 回の反復 (0、5、10) を実行します。反復ごとに、ループ カウンターは 5 ずつ増加します。

PHPのforeachループ

foreach ループ- 最も一般的なサイクル。 ほとんどすべてのスクリプト、特に PHP スクリプトがデータベースで動作する場合に必要です。 配列を走査するために使用されます。

たとえば、小さな例を見てみましょう。

$value) ( echo "キー: $key、値: $value
"; } ?>

スクリプトを実行すると、次のように表示されます。

キー: 0、値: 赤 キー: 1、値: 青 キー: 2、値: 緑 キー: カラー、値: 黄 キー: テスト、値: design studio ox2.ru

PHPのwhileループ

while ループ条件が満たされる限りループを実行するために使用されます。 条件が満たされない場合、ループに入ります。

例を見てみましょう:

"; } ?>

画面には1から19までの数字が表示されます

PHP の Do-while ループ:

サイクル 一方を行います- とまったく同じように動作します while ループ唯一の違いは、反復後に条件が満たされることです。 例を書いてみましょう:

"; ) while ($i< 20); //Выполняем цикл до те пор, пока $i < 20 ?>

画面には 1 から 20 までの数字が表示されます。前の例では次の点に注意してください。 while ループは 1 から 19 まででした。 ループの反復前に条件が満たされました。

するために サイクルを断ち切る存在します ブレーク機能、彼女は許可します ループから抜け出すループの終わりまでにどれだけの反復が残っているかは関係ありません。

反復をスキップして次の反復に進むには、次のようにします。 コンティニュー機能.

Web サイトを作成するときは、サイトの作成コストや機能などに関係なく、ほとんどの場合サイクルが使用されます。 だから真剣に受け止めてください!

スクリプトを作成するとき、同じアクションを複数回実行する必要があることがよくあります。 これがサイクルの目的です。 他の言語と同様に、PHP のループはいくつかのタイプに分類されます。 for カウンターを使用したループ while、do-while 条件を使用したループ 配列 foreach を走査するループ

OX2 2014-10-02 2014-10-02

多くの場合、特定の条件が発生したときにループを早期に終了できると便利です。 ブレーク演算子はこの機会を提供します。 これは、while、do while、for、foreach、switch などの構造で動作します。

Break ステートメントは、終了するネストされた構造の数を示すオプションの数値引数を取ることができます。 数値引数のデフォルト値は 1 で、これにより現在のループが終了します。 switch ステートメントがループ内で使用されている場合、break/break 1 は switch 構造からのみ終了します。

\n"; Break 1; /* switch 構造のみを終了します。 */ case 10: echo "Iteration 10; 出かけましょう
\n"; Break 2; /* switch 構造と while ループを終了します。 */ ) ) // ($bar1 = -4; $bar1 の別の例)< 7; $bar1++) { // проверка деления на ноль if ($bar1 == 0) { echo "Выполнение остановлено: деление на ноль невозможно."; break; } echo "50/$bar1 = ",50/$bar1,"
"; } ?>

もちろん、ループを完全に終了するのではなく、ループの反復の 1 つを単純にスキップしたい場合もあります。その場合、これは continue ステートメントを使用して行われます。

続く

ループ本体内の現在のコード ブロックの処理を停止し、次の反復に進むには、 continue ステートメントを使用します。 これは、ループを停止せず、単に次の反復に移動するという点で、break 演算子とは異なります。

continue 演算子は、break と同様に、オプションの数値引数を取ることができます。これは、ネストされたループのレベルの数で残りの反復がスキップされることを示します。 数値引数のデフォルト値は 1 で、現在のループの残りの部分のみをスキップします。

"; 続行; ) echo "50/$bar1 = ",50/$bar1,"
"; } ?>

ループの実行中、$counter 変数のゼロ値はスキップされましたが、ループは次の値で続行されたことに注意してください。

後藤

goto は無条件ジャンプ演算子です。 プログラム コードの別のセクションにジャンプするために使用されます。 プログラム内で移動する必要がある場所は、コロンが後に続くラベル (単純な識別子) を使用して示されます。 続行するには、goto ステートメントの後に目的のラベルを配置します。

goto ステートメントの簡単な使用例:

goto ステートメントの使用にはいくつかの制限があります。 ターゲット ラベルは同じファイル内、同じコンテキスト内に存在する必要があります。つまり、関数やメソッドの境界の外側にジャンプしたり、その境界の内側にジャンプしたりすることはできません。 また、ループや switch ステートメント内にジャンプすることもできません。 ただし、これらの構造 (ループや switch ステートメント) からエスケープするために使用できます。 通常、goto ステートメントは、マルチレベルの Break ステートメントの代わりに使用されます。

"; ) echo "ループの後 - マークの前"; // 命令は実行されません end: echo "マークの後"; ?>

場合によっては、望ましい結果が得られるまでコードを実行する必要があります。 これを行うために、PHP には while、for、foreach ループが用意されています。

PHP の While ループ構文

構文 サイクルその間:

PHP での while ループの使用例:

上記の php while ループの例では、カウンター変数 $i が最初に 0 に初期化されます。

while ループの条件は $i です< 10 . Это означает, что мы проверяем, меньше ли переменная, чем 10.

中括弧で囲まれたものはすべて、ループの命令 (本体) です。 条件が true を返す限り、これらの処理が繰り返されます。 上の例では、$i が画面に出力され、その後カウンター変数が 1 ずつ増加します。これは、ループ条件が最終的に失敗するために重要です。 たとえばカウンター変数 $i をインクリメントするのを忘れたなどの理由でループ条件が常に満たされる場合、スクリプトは無限ループに入ります。 幸いなことに、PHP はしばらくするとスクリプトの実行を停止します。

ループ条件とループ本体の両方を必要に応じて複雑にすることができます。 たとえば、while php 内で while を使用します。 php while 配列を反復処理します (配列 ) するか、複数のカウンタ変数を定義します。

$min) ( echo "カウント 1: $count1; count2: $count2
"; $ counter1 += 2; // $counter1 の省略表現 = $counter1 + 2; $counter2 -= 3; // $count2 の省略表現 = $count2-3; ) ?>

この例では、 $counter 1 と $counter 2 の 2 つの変数を定義します。 一方の変数は 2 だけインクリメントされ、もう一方の変数は 3 だけデクリメントされます。両方の条件が満たされる限り while ループは実行されます $ count 1< $ max и $ count 2 >最低$

ループにおける Break および continue キーワードの影響

コマンドの使用 壊すできる while ループの実行を中断します PHP。 特定のユーザーを探しているとします。 その後、while ループですべてのユーザーを調べることができます。 適切なユーザーが見つかったら、キーワードを使用してループを停止します。 壊す.

Break キーワードを使用する簡単な例:

while ($count< $max) { if ($count == 10) { echo "Останавливаемся на числе 10"; break; } echo "$count,"; $counter += $increment; // увеличивает $count на значение $increment } ?>

このコードは、0 から $max = 30 までの数値を昇順に繰り返し、$increment の値、つまり数値 2 を $count 変数に追加します。しかし、$count 変数が 10 に等しい場合、次は次のようになります。起こる: while ループを終了する php.

キーワード継続 ループは終了しません php の while は完全に ですが、ループ本体の残りの部分をスキップするだけです。 以下の例はこれを示しています。

while ($count< $max) { $counter += $increment; // увеличивает $payer на $increment if ($count >= 10 && $count<= 15) { echo "Число между 10 и 15
"; 続く; )

エコー「$count
"; } ?>

このループは 0 から始まり、$max までカウンターを増分します。 $counter 変数は、常に $increment 変数の値だけインクリメントされます。 つまり、0、2、4 などの値を取ります。

$count 変数の値が 10 ~ 15 の場合、テキストとステートメントが画面に出力されます。 続くループ本体内の他の式をスキップします。 その結果、数値 10、12、14 が出力されないことがわかります。

PHPのdo-whileループ

軽微な修正 その間 do - while ループです。 この場合、ループ条件はその本体が実行された後にのみチェックされます。 これは、ループの本体が少なくとも 1 回実行されることを意味します。

Do-while ループの構文:

0 から 10 の間、または 20 から 30 の間のいずれかでなければならない乱数を生成したいとします。 rand 関数の定義によると ( $ 最小値、最大値) の間の数値をランダムに生成できます。 $分そして $max:

10 && $ランダム< 20) { $random = rand (0, 30); }

echo "私たちの乱数: $random"; ?>

PHPループの使用 するその間を使用すると、$random 変数を初期化せずに式の値を取得できます。 ループの本体は、条件がテストされる前に実行されます。 上記の例は次のようになります。

10 && $ランダム< 20);

echo "私たちの乱数: $random"; ?>

初心者にとって、do-while ループは少しわかりにくいかもしれません。 その目的を完全に理解していなくても、問題ありません。 Do-while ループは実際にはほとんど使用されません。

一重引用符で囲まれた文字列内で、バックスラッシュ「\」が他の文字 (「\」または「"」以外) の前にある場合、その文字は通常の文字として扱われ、他の文字と同様に出力されます。行末の終了引用符の前にある場合にのみエスケープが必要です。

PHP には、バックスラッシュ文字で始まる文字の組み合わせが多数あります。 これらはエスケープ シーケンスと呼ばれ、後ほど説明する特別な意味を持っています。 したがって、他の 2 つの構文とは異なり、一重引用符で囲まれた文字列内に出現する特殊文字の変数とエスケープ シーケンスは処理されません。

エコー "行に挿入することもできます
したがって、改行文字は、
それが普通だから」
;
// 出力: 出力するには「」が必要です
// 先頭に \ を置きます
エコー 「\を表示するには、」の前に行う必要があります.
「彼女を\\に置いてください」;
// 出力: C:\*.* を削除しますか?
エコー 「C:\\*.* を削除しますか?」;
// 出力: これでは挿入されません: \n
// 改行
エコー "これは挿入されません:\n改行";
// 出力: $expand 変数も
// $どちらも置換されない
エコー 「$expand変数も$eitherです」.
「代わりにならない」;
?>

16.1. 例。 エスケープシーケンスの使用

17. 二重引用符

文字列が二重引用符「"」で囲まれている場合、PHP は特殊文字のエスケープ シーケンスをより多く認識します。

それらの一部を表に示します。
テーブル。 制御シーケンス。

繰り返しますが、他の文字をエスケープしたい場合は、バックスラッシュも出力されます。

二重引用符で囲まれた文字列の最も重要なプロパティは、変数の処理です。

ヒアドキュメント

文字列を定義する別の方法は、ヒアドキュメント構文を使用することです。 この場合、行は次の文字で始まる必要があります。<<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.

ヒアドキュメントのテキストは、二重引用符を付けなくても、二重引用符で囲まれた文字列と同じように動作します。 これは、ヒアドキュメント内で引用符をエスケープする必要はありませんが、上記のエスケープ シーケンスを引き続き使用できることを意味します。

ヒアドキュメント内の変数も処理されます。

$str =<<複数にまたがる文字列の例
使用する行
ヒアドキュメントの構文
EOD;
// ここでの識別子は EOD です。 下に
// EOT識別子
$name = "ヴァシャ" ;
エコー<<私の名前は「$name」です。
EOT;
// これにより、「私の名前は "Vasya" です。」と表示されます。
?>

例。 ヒアドキュメント構文の使用
注: ヒアドキュメントのサポートは PHP 4 で追加されました。

18. 型配列

PHP の配列は順序付けされたマップ、つまり値をキーに変換する型です。 この型はいくつかの方法で最適化されているため、実際の配列、リスト (ベクター)、ハッシュ テーブル (マップ実装)、スタック、キューなどとして使用できます。 別の PHP 配列を値として使用できるため、次のようにすることができます。
木のエミュレートも簡単です。

配列は、array() コンストラクトを使用するか、その要素に値を直接割り当てることで定義できます。 を使用した定義
array() 配列 ( => 値,
=> 値 1, ...)

array() 言語構造は、パラメータとして key => value ペアをカンマで区切って受け取ります。 => 記号は、値とそのキーを照合します。 キーには整数または文字列を指定でき、値には PHP で使用可能な任意の型を指定できます。 配列の数値キーは、多くの場合インデックスと呼ばれます。 PHP における配列のインデックス付けは 0 から始まります。

配列要素の値は、配列名の後に角括弧内に検索対象の要素のキーを指定することで取得できます。 配列キーが標準の整数表記の場合は数値として扱われ、それ以外の場合は文字列として扱われます。

したがって、$a["-1"] が $a[-1] と同等であるのと同様に、$a["1"] を記述することは $a を記述することと同等です。

$books = array("php" =>
「PHP ユーザーガイド」 、
12 => true );
echo $books [ "php" ];
//「PHP ユーザーガイド」を表示します
エコー $books [ 12 ]; //1を出力します
?>

18.1. 例。 PHP の配列

要素にキーが指定されていない場合は、最大の数値キーに 1 を加えた値がキーとして使用されます。 すでに値が割り当てられているキーを指定すると、上書きされます。 PHP 4.3.0 以降、最大キーが負の数の場合、次の配列キーはゼロ (0) になります。

// 配列 $arr と $arr1 は同等です
$arr = array(5 => 43 , 32 , 56 , "b" => 12 );
$arr1 = 配列(5 => 43 , 6 => 32 ,
7 => 56 、 "b" => 12 );
?>

18.2. 例。 PHP の配列

TRUE または FALSE をキーとして使用すると、その値はそれぞれ整数型の 1 と 0 に変換されます。 NULL を使用すると、キーの代わりに空の文字列が取得されます。 空の文字列自体をキーとして使用することもできますが、引用符で囲む必要があります。 したがって、空の角括弧を使用するのと同じではありません。 配列やオブジェクトをキーとして使用することはできません。

角かっこ構文を使用した定義

値を書き込むだけで配列を作成できます。 すでに述べたように、配列要素の値は角括弧を使用して取得できます。角括弧の中に、$book["php"] のようにキーを指定する必要があります。 新しいキーと新しい値を指定した場合 (たとえば、$book["new_key"]="new_value")、新しい要素が配列に追加されます。 キーを指定せず、値 $book="new_value" のみを割り当てる場合、新しい配列要素には既存の最大値より 1 大きい数値キーが設定されます。 値を追加する配列がまだ存在しない場合は、作成されます。

$books [ "キー" ]= 値 ; // 配列に追加される
// $books の値
// キーを含む値
$books = 値1 ; /* 配列に追加される
値 value1 秒
キー 13、なぜなら
最大キー y
私たちは12人でした */
?>

特定の配列要素を変更するには、その要素とそのキーに新しい値を割り当てるだけです。 要素のキーを変更することはできません。要素 (キーと値のペア) を削除して、新しい要素を追加することのみが可能です。 配列要素を削除するには、unset() 関数を使用する必要があります。

$books = array("php" =>
「PHP ユーザーガイド」 、
12 => true );
$本 =
「Perl に関する本」 ; // 追加された要素
// キー(インデックス)あり
// 13 は同等です
// $books =
// "Perl に関する本";
$books["lisp"] =
123456 ; /* これにより、配列に新しいものが追加されます