ホームページ > バックエンド開発 > PHPの問題 > PHPで配列をループするいくつかの方法は何ですか?

PHPで配列をループするいくつかの方法は何ですか?

青灯夜游
リリース: 2023-03-14 08:02:01
オリジナル
4785 人が閲覧しました

ループメソッド: 1. for ステートメントを使用して配列を走査します。 2. foreach() ステートメントを使用して配列を走査します。 3. while ステートメントを list() および each() 関数とともに使用して、配列を走査する; 4. while ステートメントを使用する key()、current()、next() およびその他のポインター関数を使用して配列を走査します。

PHPで配列をループするいくつかの方法は何ですか?

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

配列ループ トラバーサルの 4 つの方法

1. for ループを使用して配列を走査します

conut($arr); は配列要素の数をカウントするために使用されます。

for ループは、純粋なインデックス配列を走査するためにのみ使用できます。 ! ! !

連想配列がある場合、カウント統計中に 2 つの配列の合計数がカウントされ、混合配列を走査するために for ループが使用され、配列が範囲外になります。 !

例:

$arr = array(1,2,3,5,6,7);
$num = count($arr);        //count最好放到for外面,可以让函数只执行一次
echo "数组元素的个数{$num}<br/>";
for($i=0;$i<$num;$i++){
  echo "{$i}==>{$arr[$i]}<br/>";
 }
ログイン後にコピー

2. 配列を介した forEach ループ

foreach はあらゆるタイプの配列を走査できます。 ! !
例:

$arr = array(1,2,3,"one"=>4,5,6,7);
foreach($arr as $value){
  echo "{$item}<br>";
 }
 foreach($arr as $key => $value){
  echo "{$key}==>{$item}<br>";
 }
ログイン後にコピー

たとえば、次の配列を解析します:

$h51701 = array(
  "group1"=>array(
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男")
  ),
  "group2"=>array(
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男")
  ),
  "group3"=>array(
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男")
  )
 );
 foreach ($h51701 as $key => $value) {
  echo "{$key}<br><br>";
  foreach ($value as $key1 => $value1) {
   echo "第".($key1+1)."个同学<br>";
   foreach ($value1 as $key2 => $value2) {
    echo "{$key2}==>{$value2}<br>";
   }
   echo "<br>";
  }
  echo "------------------------<br>";
 }
ログイン後にコピー

3. list()、each()、while() を使用して配列を走査します

(キーポイント) list(): 配列の各値を list 関数の各パラメータに割り当てるために使用されます。 (リスト関数のパラメータは、配列内の要素の数以下である必要があります);

注:

① list() が配列を解析するとき、それは配列のみを解析します。インデックス配列;

② リストは、空のパラメータを通じて配列の値を選択的に解析できます;

(キーポイント) each(): 現在のポインタが存在するキーと値のペアを返すために使用されます。配列が見つかりました!そして、ポインタを 1 桁戻します;

戻り値: ポインタに次の桁がある場合は、配列を返します。インデックス配列 (0 キー、1 値) と連想配列 (「キー」キー、「値」値) が含まれます。ポインタに次の桁がない場合は false を返します。##

while(list($key,$value) = each($arr)){
 echo "{$key}-->{$value}<br>";  
}
reset($arr);
ログイン後にコピー

!!!! each() を使用して配列を走査した後、最後のビットの次のビットでポインタが使用されます。つまり、 each() が再度使用されると、常に false が返されます。使用するには、reset($arr); 関数を使用して配列ポインタをリセットする必要があります;

例:

 $arr = array(1,2,3,"one"=>4,5,6,7);   
 foreach($arr as $value){
  echo "{$item}<br>";
 } foreach($arr as $key => $value){
  echo "{$key}==>{$item}<br>";
 }
ログイン後にコピー
 while(true){
   $a = each($arr);  if($a){
   echo "{$a[0]}-->{$a[1]}<br>";  
   echo "{$a[&#39;key&#39;]}-->{$a[&#39;value&#39;]}<br>";  
  }else{   break;
  }
}
ログイン後にコピー
 while(list($key,$value) = each($arr)){
  echo "{$key}-->{$value}<br>";  
  }
  reset($arr);  
  while(list($key,$value) = each($arr)){
  echo "{$key}-->{$value}<br>";  
  }
ログイン後にコピー

4. 配列ポインタを使用して走査します配列

① next: 配列ポインタを 1 つ後ろに移動します。 false が返されない場合は次の桁の値を返します。 ② prev: 配列ポインタを 1 桁進めます。そして、前の桁の値を返します; false

が返されない場合は、 ③ end: 配列ポインタを最後の桁に移動し、最後の桁の値を返します; 空の配列は false

## を返します# ④reset: 配列ポインタを最初の位置に戻します。最初の値を返します; 空の配列は false を返します

⑤ key: 現在のポインタが存在するキーを返します;

⑥ current: 現在のポインタが存在する値を返します;

$arr = [1,2,3,4,"one"=>5];
  while(true){
   echo key($arr);
   echo "--";
   echo current($arr);
  echo "<br>";
  if(!next($arr)){
   break;
   }
  }
  reset($arr);//第二种方式:
do{
   echo key($arr);
   echo "--";
   echo current($arr);
  echo "<br>";
  }while(next($arr));
  reset($arr);
ログイン後にコピー

推奨学習: 「

PHP ビデオ チュートリアル

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

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