ホームページ  >  記事  >  バックエンド開発  >  PHPで配列を走査するためのキーワードは何ですか

PHPで配列を走査するためのキーワードは何ですか

青灯夜游
青灯夜游オリジナル
2023-01-10 19:11:551663ブラウズ

配列を走査するためのキーワードは次のとおりです: 1. for は、既知のループ数に従ってループ操作を実行できます。スクリプトを実行する必要がある回数が明確にわかっている状況に適しています。 2. foreach と as、foreach は配列を走査するように設計された For ステートメントに特別に使用され、foreach は as キーワードとともに使用する必要があります; 3. while は、配列を走査するために each() および list() 関数とともに使用されます; 4 . do、while、next()、key() とともに使用され、current() を使用すると配列をトラバースできます。

PHPで配列を走査するためのキーワードは何ですか

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

php で配列を走査するためのキーワード: for、foreach、while、do; このうち、do は、ループ関数の「do-while」構造を形成するために while と一緒に使用する必要があります。

これらのキーワードを使用して配列を走査する方法を学びましょう。

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);
for ($i=0; $i < count($array); $i++) { 
    echo $array[$i] . "<br/>";
} 
?>

出力結果:


2
数学
梨子
3.14
榴莲
12

foreach ステートメントは配列を走査します (キーワードとして foreach)

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

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

foreach ステートメントの分析

まず、2 つの文法形式がある foreach ステートメントを理解しましょう:

文法形式 1:

foreach ($array as $value){
    语句块;
}

指定された $array 配列をトラバースし、各ループで現在の配列の値を $value に割り当てます。

構文形式 2:

foreach ($array as $key => $value){
    语句块;
}

指定された $array 配列をトラバースし、各ループで現在の配列の値が $value に割り当てられ、キー名が $value に割り当てられます。 $キー。

説明:

foreach ステートメントがループすると、配列内のポインターが 1 ステップ前に移動し、次のループで次の配列要素が取得されます。走査を停止し、配列の最後に到達するまでループを終了します。

例:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $val){
    echo "值是:" . $val ;
    echo "<br/>";
}
echo "<br/>";
foreach ($array as $key => $value) { 
    echo "键名为:".$key.",键值为:".$value . "<br/>";
} 
?>

出力結果:


PHPで配列を走査するためのキーワードは何ですか

while 文each() list() traverse

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

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

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

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
while( list($key, $val) = each($array) ) {
    echo "$key => $val<br>";
}
?>

出力結果:


PHPで配列を走査するためのキーワードは何ですか

do-while ステートメント next() key() current() traversal

PHP のすべての配列には内部ポインタがあります。これは配列ポインタであり、このポインタは配列内の要素を指します (要素は配列の現在の要素であり、デフォルトでは最初は配列内の最初の要素を指します)。

  • next() 関数は、配列の内部ポインタが指す次の要素の値を返すことができ、要素がなくなると FALSE を返します。

  • key() 関数は、配列内の現在の要素のキー名を取得するために使用されます。

  • current() 関数は、配列の現在の要素のキー値を返します。

do-while ループ next() key() current() を使用して配列を走査し、配列要素のキー名とキー値を取得します。

コード例を詳しく見てみましょう:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
do{
	 echo key($array)." => ".current($array)."<br>";
}while(next($array));
?>

出力結果:

PHPで配列を走査するためのキーワードは何ですか

遍历结束后,数组指针会指向最后一个数组元素,我们可以使用reset()函数来重置数组指针,将数组中的内部指针重新指向第一个元素。

扩展知识:do-while 循环

do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在一般的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 false 则整个循环立即终止)。

do-while 循环只有一种语法:

<?php
$i = 0;
do {
   echo $i;
} while ($i > 0);
?>

以上循环将正好运行一次,因为经过第一次循环后,当检查表达式的真值时,其值为 false($i 不大于 0)而导致循环终止。

推荐:《PHP视频教程

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

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