• 20)PHP,数组的遍历


    1 然后开始使用这2个函数和while循环结构来实现数组遍历:
    2 形式:
    3 reset($arr1);
    4  while ( list ($key, $value ) = each( $arr1) )    //从数组$arr1中一次次取出元素,
    5 //当each到数组最后的时候,就返回false,即此时循环结束
    6 {
    7 //这里,就可以对$key ,和$value进行操作了。
    8 }

    (1)foreach遍历

    1 foreach( $arr   as   [ $key  => ] $value )    //$key可以称为键变量,$value可以称为值变量。
    2 {
    3 //这里就可以对$key  和 $value 进行所有可能的操作——因为他们就是一个变量
    4 //$key 代表每次取得元素的下标,可能是数字,也可以能是字符串
    5 //$value 代表每次取得元素的值,可能是各种类型。
    6 //此循环结构会从数组的第一项一直遍历循环到最后一项,然后结束。
    7 }

              那个中括号的内容可以省略

    遍历的基本原理:

          每个数组,其内部都有一个“指针”,该指针决定了该数组当前取值的时候,取到的元素。

          foreach遍历过程中,都是依赖与该指针而进行的!

           举例:$arr1 = array(2=>1,  ‘dd’=>5,  1=>1.1,  “abc”,  0=>true)

                  

    指针除了负责foreach循环的位置设定之外,还有其他一些函数也依赖于该指针:

    1 1, $v1 = current( $arr1);    //取得$arr1中当前指针所指向的元素的值,如果没有指向元素,则为false
    2 
    3 2, $v1 = key($arr1);     //取得$arr1中当前指针所指向的元素的下标,。。。。。false
    4 
    5 3, $v1 = next($arr1 );     //将指针移向“下一个元素”,然后取得该下一个元素的值;
    6 
    7 4, $v1 = prev($arr1);      //将指针移向“上一个元素”,然后取得该上一个元素的值
    8 
    9 5, $v1 = reset($arr1);     //将指针移向“第一个元素”,然后取得该元素的值——数组指针初始化

    6, $v1 = end($arr1);       //将指针移向“最后一个元素”,然后取得该元素的值

    
    

    7, $v1 = each($arr1);      //取得当前元素的下标和值,然后移动指针到下一个位置。

     

    (2)for+   next   +reset遍历:

    1 reset( $arr1 );    //重置数组,即:数组指针初始化,这里,返回的数据被“丢弃”了。
    2 $len = count( $arr1);
    3 for($i = 0;  $i < $len  $i++){
    4 $key = key ($arr1 );        //下标
    5 $value = current( $arr1 );    //6 //然后这里就可以对$key 和 $value进行任何作为变量的操作
    7 next($arr1);//这里,移动指针到下一个元素(也同时丢弃了返回值)
    8 }


    **************************************************************************************************************************************
    ************************************************************************************************************************************
    $v=array(12,13,14,'abc','fhskjf',43);
    reset($v);
    $length=count($v);
    for($i=0;$i<$length;$i++){
    echo key($v);
    echo " ";
    next($v);
    }

                                   

    (3)while   +each()   +list()  遍历

    1 each()函数解释:
    2 each()函数可以取得一个数组中的一个元素的下标和值,然后再放入一个新的数组中,并且指针后移一位。
    3 该新的数组,有4个元素,但存储的是下标和值的“双份”,类似下述形式:
    4 array(
    5 1 => 取出来的值,
    6 ‘value’ = >取出来的值,
    7 0 = > 取出来的下标(键名),
    8 ‘key’ => 取出来的下标(键名)
    9 );

                                        

     1 list()函数解释:
     2 使用形式:
     3 list($v1, $v2, $v3,$v4 .... )= 数组$arr1;    
     4 其作用是:依次取得数组$arr1中下标为0,123, ....的元素的值,并一次性放入多个变量中(一一对应)
     5 即其相当于如下语句:
     6 $v1 = $arr1[0];
     7 $v2 = $arr1[1];
     8 $v3 = $arr1[2];
     9 $v4 = $arr1[3];
    10 ..........
    11 但是注意:只能实现这样的“从0开始的连续数字下标的元素的取值”(但并非要求数组的元素的顺序为同样的数字顺序)

    1 然后开始使用这2个函数和while循环结构来实现数组遍历:
    2 形式:
    3 reset($arr1);
    4  while ( list ($key, $value ) = each( $arr1) )    //从数组$arr1中一次次取出元素,
    5 //当each到数组最后的时候,就返回false,即此时循环结束
    6 {
    7 //这里,就可以对$key ,和$value进行操作了。
    8 }
  • 相关阅读:
    正则表达式替换所有符合条件的字符
    关于jquery ajax不执行success回调函数
    关于jquery绑定事件执行两次
    同步选中所有checkbox
    Jquery动态改变my97datepicker的日期形式
    关于button在td中时,zclip复制不能的问题
    关于各种高度的获取方法
    慎用--skip-grant-tables命令
    Mysql中判断是否存在
    前端html
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/7308444.html
Copyright © 2020-2023  润新知