• 技术文章 >后端开发 >PHP问题

    php中循环数组的几种方式是什么

    青灯夜游青灯夜游2021-11-29 18:01:32原创1025

    循环方式:1、使用for语句遍历数组;2、使用foreach()语句遍历数组;3、利用while语句配合list()、each()函数来遍历数组;4、利用while语句配合key()、current()、next()等指针函数来遍历数组。

    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

    数组循环遍历的四种方式

    1、使用for循环遍历数组

    conut($arr);用于统计数组元素的个数。

    for循环只能用于遍历,纯索引数组!!!!

    如果存在关联数组,count统计时会统计两种数组的总个数,使用for循环遍历混合数组,导致数组越界!!

    eg:

    $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可以遍历任何类型的数组!!!
    eg:

    $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函数的参数,必须小于等于数组的元素个数);

    注意:

    ① list()在解析数组时,只解析索引数组;

    ② list可以通过空参数,选择性的解析数组的值;

    (重点)each():用于返回数组当前指针所在位的键值对!并将指针后移一位;

    返回值:如果指针有下一位,返回一个数组。包含一个索引数组(0-键,1-值)和一个关联数组("key"-键,"value"-值);如果指针没有下一位,返回false;
    eg:

    while(list($key,$value) = each($arr)){
     echo "{$key}-->{$value}<br>";  
    }
    reset($arr);

    !!!!数组使用each()遍历完一遍后,指针使用处于最后一位的下一位;即再用each(),始终返回false;

    如果还需使用,需用reset($arr);函数,重置数组指针;

    eg:

     $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['key']}-->{$a['value']}<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:将数组指针,后移一位。并返回后一位的值;没有返回false

    ② prev:将数组指针,前移一位。并返回前一位的值;没有返回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中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 数组 循环数组
    上一篇:php中dt是指什么意思 下一篇:php中传值与传址的区别是什么
    千万级数据并发解决方案

    相关文章推荐

    • 怎样去给PHP数组进行排序(图文详解)• PHP数组操作之匹配搜索数组中的元素和键名• PHP数组操作之怎样合并数组?常见方法总结• PHP数组操作之计算数组所有元素和的方法• PHP数组操作之计算数组元素乘积的方法• php数组中键和值间怎么转换位置
    1/1

    PHP中文网