ホームページ >バックエンド開発 >PHPの問題 >PHPで配列を走査する3つの方法は何ですか

PHPで配列を走査する3つの方法は何ですか

青灯夜游
青灯夜游オリジナル
2022-09-06 19:14:052657ブラウズ

配列を走査する 3 つの方法: 1. for ステートメントを使用して走査します。構文 "for($i=0;$i$v){//loop code}"; 3. 走査するには while を each() および list() とともに使用します、構文は "while( list($k, $v)=each($arr)){//ループ コード}"。

PHPで配列を走査する3つの方法は何ですか

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、DELL G3 コンピューター

アレイの走査PHP では、一般的に使用される 3 つの方法があります:

  • for ステートメントを使用して配列をループする;

  • foreach ステートメントを使用する配列を走査するには;

  • list()、each()、および while ループを組み合わせて配列を走査します。

これら 3 つの方法のうち最も効率的なのは、foreach ステートメントを使用して配列を走査することです。 foreach 構造体は PHP4 から導入されており、PHP で配列を走査するために特別に設計されたステートメントです。誰でも使用することをお勧めします。まずはそれぞれの方法を紹介しましょう。

方法 1: for ステートメントを使用してトラバースする

for ループは、ループの数を制御する変数を事前に定義します。 for ステートメントなので、for ループ このステートメントは、既知のループ数に従ってループ操作を実行できます。これは、スクリプトを実行する必要がある回数が明確にわかっている状況に適しています。

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

for (初始化语句; 循环条件; 变量更新--自增或自减) {
    语句块;   
}

ステートメントの分析:

  • 初期化ステートメント (式 1): 主に変数値は、ループの開始時の値であるカウンターを設定するために使用されます。このステートメントは最初のループ中にのみ実行され、今後は実行されません。

  • ループ条件 (式 2): ループ実行の制限条件。ループ本体内のコードを実行するかどうかを制御するために使用されます。条件が TRUE の場合、ループは続行されます。条件が FALSE の場合、ループは終了し、ループを直ちに終了します。

  • 変数更新 (式 3): インクリメントまたはデクリメント操作を伴う式。ループが実行されるたびに、カウンターの値が即座に変更されるため、ループが状況は徐々に「維持できなくなります」。

  • ステートメント ブロック: 条件が true と判断されたときに実行する必要があるいくつかのコード。

#例

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"数学","梨子",3.14,"榴莲",12);
var_dump($array);
echo "遍历数组:<br>";
for ($i=0; $i < count($array); $i++) { 
    echo $i.":".$array[$i] . "<br/>";
} 
?>

出力結果:


PHPで配列を走査する3つの方法は何ですか

方法 2: foreach ステートメントを使用して走査する

foreach は、配列を走査するために特別に設計されたステートメントです。配列を走査するときによく使用されるメソッドです。配列を走査する際に非常に便利です。また、配列を走査する際に非常に便利です。 PHP5 Traverse オブジェクトの後に使用されます (foreach は配列とオブジェクトにのみ適用できます)。

foreach ステートメントは、配列の添字に関係なく配列を走査し、不連続なインデックス配列や文字列を添字として持つ連想配列に使用できます。

foreach ステートメントには 2 つの構文形式があります:

  • 文法形式 1:

  • foreach ($array as $value){
        语句块;
    }
指定された $array 配列をトラバースし、各ループで現在の配列の値を $value に割り当てます。

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"数学","梨子",3.14,"榴莲",12);
var_dump($array);
echo "遍历数组:<br>";
foreach ($array as $val){
    echo "值是:" . $val ;
    echo "<br/>";
}
?>

PHPで配列を走査する3つの方法は何ですか

  • 構文形式 2:

  • foreach ($array as $key => $value){
        语句块;
    }
指定された $ をトラバースします。 array 配列では、各ループで現在の配列の値が $value に割り当てられ、キー名が $key に割り当てられます。

例:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"数学","梨子",3.14,"榴莲",12);
var_dump($array);
echo "遍历数组:<br>";
foreach ($array as $key => $value) { 
    echo "键名为:".$key.",键值为:".$value . "<br/>";
} 
?>

PHPで配列を走査する3つの方法は何ですか

説明:

foreach ステートメントは、毎回配列内のポインターを使用します。ループ 配列の最後まで移動し、移動を停止してループを終了するまで、次のループで次の配列要素が取得されるように、1 ステップ前に進みます。

方法 3: while ステートメント each() list() を使用して、

while ループステートメントを走査します。 while文の種類のループ文では、まずループ条件を判定し、条件が成立すればループ本体が実行され、条件が成立しない場合は停止します。

each() 関数 配列内の現在のキー値を返し、配列ポインタを前方に移動します。 each() が実行された後、配列ポインタは配列内の次の要素に留まるか、配列の終わりに達すると最後の要素に留まります。

list() 関数 は、1 回の操作で一連の変数に値を割り当てるために使用されます。

while ループ each() 関数 list() 関数は配列を走査できます。以下のコード例を見てみましょう:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"数学","梨子",3.14,"榴莲",12);
var_dump($array);
echo "遍历数组:<br>";
while( list($key, $val) = each($array) ) {
    echo "$key => $val<br>";
}
?>

出力結果:

PHPで配列を走査する3つの方法は何ですか

説明:

while ループ文は

when type ループ文です。最初にループ条件が判定され、条件が成立すると、ループ本体が実行されますが、満たされない場合は停止します。

  • 作用:反复执行某一项操作,直到指定的条件不成立。

  • 特点:先判断表达式,当表达式结果为真时执行相应的语句。

while循环的一般形式为:

while(表达式){    //表达式为循环条件
    PHP语句块;  //PHP语句块为循环体
}

语句解析:

  • 先计算“表达式”的值,当值为真时, 执行循环体内的“PHP语句块”;

    说明:“表达式”的计算结果是布尔类型( TRUE 或 FALSE)的,如果是其他类型的值也会自动转换为布尔类型的值(因为PHP是弱语言类型,会根据变量的值,自动把变量转换为正确的数据类型)。

    “语句块”就是由{ }包围的一个或多个语句的集合;如果语句块中只有一个语句,也可以省略{ }

  • 执行结束后,返回到表达式,再次计算表达式的值进行判断,当表达式值为真,则继续执行“语句块”……这个过程会一直重复

  • 直到表达式的值为假时才跳出循环,执行while 下面的语句。

while语句的流程图如下所示:

PHPで配列を走査する3つの方法は何ですか

通常“表达式”是使用比较运算符或者逻辑运算符计算后的值

注:“死循环”--无法靠自身的控制终止的循环

推荐:《PHP视频教程

以上がPHPで配列を走査する3つの方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。