【php】forループを使って指定回数ループ処理させる方法

php-forループphp
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではphpのforループの使い方解説をしています。基本的な使い方と実際の使い方の紹介を掲載しています。

forループ

forループ処理は予め処理回数がわかっている場合に、その回数分の処理をさせる機能を持っています。回数が不明な場合や、条件がtrueの場合ずっと処理させるという簡単な方を使いたい場合はwhile文を使います。

forループの書き方は以下の通りです。

for(式1;式2;式3) {
処理内容
}

forループは基本的には式を3つ使い、ループ回数やループ終了条件などを決定します。

式1はforループで使う変数などの宣言になります。forループに限らず、変化する事がない一定の値かつその時だけ使うのであれば変数に入れて繰り返し呼び出す方が処理時間が早いです。大抵は$iを使いますが、これは他のプログラミング言語でも似たような感じです。必ず$iでなければならないというわけでもないので好きな名前の変数を宣言しましょう。

式2は終了条件になります。$i<10と書けば$iが10になるまでループを実行しますが、$iが10になった時点でループを終了させます。$i<=10と書けば$iが10になるまでループを実行します。この辺りは比較演算子を参考にしてください。

式3は式1で宣言した変数に対して行う処理を書くところになります。多くの場合はインクリメントで1加算とするケースが多いです。

ここまでの式を実際に書くと以下のようになります。

for($i=0;$i<10;$i++){
処理内容
}

式1が変数の宣言で、$i=0としました。$iに0を入れる事で、ループの開始と同時に$iを宣言しつつ0を代入します。そして式2の終了条件では$i<10としました。これで「$iが10になるまで処理を実行」になります。式3では$i++として、1回のループ処理が終わるごとに$iを1加算する式にしました。

仮に処理内容を$iの出力にする場合は以下のようになります。

forループの見本

実際にどう言う処理が行われたのかを書くと

  1. $iに0を代入し、$iを出力して$iに1加算する($i++)
  2. ループの先頭に戻り式2を評価し、$iが1なので再び$i出力の処理を行い、$iに1加算する($i++)
  3. ループの先頭に戻り式2を評価。$iが2なので再び$i出力の処理を行い、$iに1加算する($i++)

これが$iが10に到達するまで行われます。

複数の変数を使う

式1で複数の変数を使うには,(カンマ)で区切ればOKです。この時にある配列などの個数を変数に入れておけば、処理を早く行う事ができます。

配列($a)に値を10個入れて、その配列内のアイテム数をcount関数で取得してそのまま出力した上の方法と、一度変数に入れてそれを繰り返し呼び出す下のパターンの処理速度の違いは以下の通りです。

countを複数呼び出すよりも一度変数に入れる方が圧倒的に早く処理ができる

10行目がちょうど上下を分ける部分になります。上が10を10回表示するためにcount()で個数をその都度取得しているため処理時間が下のパターンよりも長い事がわかります。

終了条件を複数設定する

式2に複数の終了条件を設定することもできます。式1と同様に,(カンマ)で区切る事で複数の式を設定できますが、最終的には最後の式の結果をもとに判断します。なので途中で終了させたい場合はif文とbreakを組み合わせるのが安定かなと思います。

breakで途中終了させる

forループは基本的には指定回数行わせるのが多いですが、途中で終了させたいケースもあります。そんな時は値をもとに判断してbreakでループから抜けるのが一番です。値をもとに判断するにはif文を使います。以下は$i=1からスタートして、10まで順番に表示するというforループです。

if文とbreakを使った途中終了

式2が省略されているため、これは無限ループになります。しかし中にあるif文の条件が$i>10ということで$iが11になったら中のbreakが実行されるようになっています。実際の表示結果も10までなので、ちゃんとbreakが機能している事がわかります。

functionと併用したforループ

ここからはおまけです。functionと併用したforループの使い方例を紹介します。functionの引数にループの回数やスタート回数などを渡せば2つの引数だけでループ処理を行わせる事ができます。

functionとforループの組み合わせ

まとめ

forループは式を3つも設定しなくてはならない反面、whileよりも無限ループに陥る危険性は低いです。どちらを使うかは好みと言えば好みではありますが、式を設定せずにより簡単に処理を書きたい場合にwhileを使うっていう選択肢もありだと思います。

phpの基礎
phpとは?JavaScriptとの違いは?みたいなことから、基本の書き方などを解説。
echoとprint
画面に文字を出力する2種類の言語構造の使い方
変数
phpで使える変数の扱い方などを解説しています。
変数のスコープ(有効範囲)
変数のスコープについての解説です。
var_dump
変数の情報を見ることができる関数
print_r
変数の情報をわかりやすい形式で表示する関数
配列と連想配列
配列と連想配列の書き方と、便利な関数の解説など。
key
連想配列のキーを返してくれます。内部ポインタ関係あり。
count
配列や連想配列の要素数を数えてくれる関数の使い方解説。
ソート関数
配列に対してソートを行う関数の中から、代表的な5つの使い方解説です。
array_reverse
配列の中身の順番を反転させる関数です。
array_chunk
配列を指定した数で分割させるarray_chunk関数の使い方解説です。
array_combine
2つの配列を足して1つの連想配列にする関数です。
array_diff
2つの配列を比較して、存在しない値を出力する関数
array_push
配列に対して後方に要素を追加する関数
array_unshift
配列に対して先頭に要素を追加する関数。
array_shift
配列の先頭の要素を取り出す関数。
array_merge
複数の配列を統合して1次元の配列にする関数
array_intersect
2つの配列を比較して、両方に共通するものを出力する関数
include
includeを使って別のphpファイルを読み込む方法の解説。
if文
if文を使って処理を変更させる方法の解説。
switch文
switch文を使って複数の処理分岐を行わせたい時に使います。
forループ
forループを使って同じ処理を行わせる方法の解説です。
whileループ
whileループを使って同じ処理を行わせる方法の解説と注意点。
do-whileループ
do-whileループを使って同じ処理を行わせる方法の解説です。
foreachループ
foreachループを使って配列内のアイテム全てに処理を行う方法の解説です。
continue
ループ処理の残りをスキップしつつ、ループの先頭に戻る制御構造
ループのネスト構造(入れ子)
ループの中にループを入れる書き方や考え方の解説。
function
functionを使って自作の関数を作成・使用する方法の解説。
引数の種類と書き方解説
functionで扱う引数の種類と書き方を解説
return
returnの使い方と関数での使い方解説。
class
classを作成して変数と関数を1つにまとめる方法と使い方の解説。
constructとdestruct
classのインスタンス作成と同時に処理を行うconstructと、スクリプトの終了と同時に実行するdestructの解説です。
インターフェイス
インターフェイスという用語の解説と、実際の使い方解説
トレイト
コードを再利用するのに便利なトレイトの解説です。
列挙型
プログラム中で使う変数名をあらかじめ定義しておく。そんな感じの型。
PDOを使ってMySQLへ接続
PDOを使ってMySQLへ接続し、データを取得する方法の解説です。
データの加工と表示
PDOでデータベースから取得したデータを加工して表示する方法の解説です。
HTMLフォームのデータ受け取りと表示
HTMLで作ったフォームからのデータの受け取り方法と、その表示方法の解説です。

 

タイトルとURLをコピーしました