PHP での foreach() の使用方法

墨辰丷
リリース: 2023-03-31 07:12:01
オリジナル
11723 人が閲覧しました

この記事では主に PHP での foreach() の使い方を紹介します。興味のある方はぜひ参考にしてください。

PHP 4 では、Perl や他の言語と同様に、foreach 構造が導入されました。これは、配列を反復処理するための単なる便利な方法です。 foreach は配列でのみ使用でき、他のデータ型または初期化されていない変数で使用しようとするとエラーが発生します。 2 つの構文があり、2 番目の構文は重要度は低いですが、最初の構文を拡張したものです。

foreach (array_expression as $value)
  statement

foreach (array_expression as $key => $value)
  statement
ログイン後にコピー

最初の形式は、指定された array_expression 配列を反復処理します。ループを通過するたびに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。

2 番目の形式は同じことを行いますが、現在のユニットのキー名も各ループの変数 $key に割り当てられる点が異なります。

推奨マニュアルphp完全独学マニュアル

まず最初のステートメントを見てみましょう。このステートメントは比較的単純です。 array_expression は配列式を指します。as $val ステートメントは配列の値を順番に取得し、$val 変数に保存します。このメソッドは配列内の値のみを取得できますが、添字インデックス値は取得できません。配列。

例:

$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");
foreach($myArray as $val) {
   print($val." ");
}
ログイン後にコピー

結果は次のように出力されます: val1 val2 val3

2 番目の形式を見てみましょう。2 番目の形式は最初の形式と同じように取得できます。配列内の要素の値に加えて、要素のインデックス値も取得して $key 変数に保存できます。配列のインデックス値が手動で設定されていない場合は、システムのデフォルト設定値が使用されます。戻り値;

正の例を参照:

まず単純な 1 次元配列を見てみましょう:

$myArray=array("1"=>"val1","2"="val2","3"=>"val3");
foreach($myArray as $key=>$val) {
   print($key."=>".$val.";");
}
ログイン後にコピー

このプログラムは次のように出力します。 val2;3=>val3;, 次に、より複雑な 2 次元配列の走査を見てみましょう。プログラムは次のとおりです。

$myArray=array(
   "1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"),
   "2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"),
   "3"=>array("31"=>"val31","32"=>"val32","33"=>"val33")
);
print("<ul>");
foreach($myArray as $key=>$val) {
   print("<li>".$key."</li>");
   if (is_array($val)) {   //判断$val的值是否是一个数组,如果是,则进入下层遍历
     print("<ul>");
    foreach($val as $key=>$val) {
       print("<li>".$key."=>".$val."</li>");
     }
     print("</ul>");
   }
}
print("</ul>");
ログイン後にコピー

出力結果:

  1
    11=>val11
    12=>val12
    13=>val13
  2
    21=>val21
    22=>val22
    23=>val23
  3
    31=>val31
    32=>val32
    33=>val33
ログイン後にコピー

  • はラベルで、実線ドットと中空ドットを表示するために使用されます。

    上記は2次元配列なので、1回目の走査後に得られる$valの値も配列になるので、2段目の配列走査の判定を走査に追加しました。

    パズルを解くための別の例

    <?php
    $a = array("1"=>"语文","2"=>"数学","3"=>"英语");
    $b = array("1"=>"95","2"=>"99","3"=>"92");
    foreach($a as $key=>$value){
      echo $value;
    echo $b[$key]."<br>";
    }
    ?>
    ログイン後にコピー

    問題は、出力配列 $b の値が $b[$value] ではなく $b[$key] を使用するのはなぜでしょうか。 ######どうしてこれなの?

    $a = array("1"=>"语文","2"=>"数学","3"=>"英语");上面这个和下面这个是完全一样的
    $a[1]="语文";$a[2]="数学"$a[3]=“英语”
    ログイン後にコピー

    上記の配列を出力するにはどうすればよいでしょうか?

    これは echo $a[1];

    でなければなりませんね?

    疑いがない場合は、続けてみましょう。 ! ! !

    -------------------------------------

    単純に foreach と言います

    形式は次のようになります foreach (添字としての配列名 => 値)

    添字は上の $a[1] で、ここでは 1 です。配列マークの添字です。

    この時点で、$a[$key] がこのように出力される理由を理解する必要があります。

    どのように変更しても、配列の出力メソッドは常に $a であることを覚えておいてください。 [1]、それはできません $a['言語']

    ============================ ========== ============================

    foreach()

    1: foreach(array_name as $value){
        statement;
      }
    ログイン後にコピー
    ここでの array_name は、走査する配列の名前です。各ループでは、array_name 配列の現在の要素の値が $value に割り当てられ、配列内の添字は 1 ステップ下に移動します。つまり、次のループで次の要素を返します。

    2:foreach(array_name as $key => $value){    
        statement;  
     }
    ログイン後にコピー

    この方法と最初の方法の違いは、追加の $key があることです。つまり、現在の要素の値を $value に割り当てるだけでなく、現在の要素のキーの値も割り当てられます。各ループで変数 $key を割り当てます。キー値には、添え字値または文字列を指定できます。

    例: book[0] の「0」=1、book[id]="001" の「id」。

    おすすめ関連記事:
    1.$key => $value
    としての PHP foreach の 2 つの使用法 2.foreach ステートメント ループ配列の使用法を深く理解する
    関連ビデオの推奨事項:
    1.Dugu Jiijian (4)_PHP ビデオ チュートリアル
    関連する推奨事項:

    Cookie に基づいて php でスキンの変更を実装する方法

    追加、 PHP の mysql 実装を削除および変更する Check function

    php の文字列操作のメソッド

    以上がPHP での foreach() の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート