首页 > 编程 > PHP > 正文

PHP之数组遍历

2020-03-22 17:21:48
字体:
来源:转载
供稿:网友
  • 数组在PHP中是一个非常强大的武器,用起来方便、容易,由于使用起来异常灵活,用它就可以实现数据结构中的链表、栈、队列、堆以及所谓的字典、集合等,也可以转换成XML格式。

    1、使用for

    for语句遍历数组不是一个好选择,一般不会用,局限性太大,因为数组的下标很多时候不连续,或者是既有整数下标又有字符串下标,但存在这么一个情况,恰好是索引数组,且它的下标是连续的,那么这也是一种方法。

    <?php    $array = array('a', 'b', 'c', 'd', 'e');    $size = count($array);    //取得数组单元个数    for($i=0; $i<$size; $i++)        echo $array[$i].'<br/>';

    2、使用foreach

    foreach比for更方便、灵活,一般用它,使用foreach($arr_name as $html' target='_blank'>value)时,会将数组的元素赋给as关键字后面的变量,当然这是针对一维数组而言,还可以将元素所在的键名取到,如下方式foreach($arr_name as $key=>$value)即可。

    <?php    $array = array('os'=>'Linux', 'server'=>'Apache', 'db'=>'mysql', 'language'=>'PHP');    foreach($array as $key=>$value){        echo 'key: '.$key.' --- value: '.$value.'<br/>';    }

    运行结果:

    3、list、each、while函数结合

    each函数每作用于数组一次,指向内部元素的指针遍向后挪动一个单元,每次each返回一个固定格式的键/值对数组,具体是(1=>值, "value'=>值, 0=>键, 'key'=>键)。下一次each作用时将移动到下一个元素,示例

    <?php        $arr = array('one'=>'a','two'=>'b', 'three'=>'c');    $lst = each($arr);        echo 'each=> <pre>';    var_dump($lst); 

    效果

    list函数的作用是,赋给它一个数组变量,它会将该数组中的以整数通ky"http://www.it165.net/qq/" target="_blank" class="keylink">qq8/Na1tcTUqsvYsLS8/Na1tNPQobW9tPO1xMuz0PK4s7j419S8urXEss7K/aOsyOe5+7LOyv2yu7m7zO7C+rLOyv3Oqta5o6zI57n7yv3X6dbQ1rWyu7m7o6zU8rLOyv2xu7izzqq/1da1o6y0+sLrvdPJzzwvcD4KCjxwcmUgY2xhc3M9"brush:java;"> list($key, $val) = $lst; echo '<br/>'; echo 'key: '.$key.' value: '.$val.'<br/>';

    效果

    $lst数组变量中的值,键值为整数的分别是前面的1=>"a'和后面的0=>'one,list函数的好处是即便键值小的、排在后边元素也会按照从小到大的顺序赋给list函数中的从前到后的参数。

    由于each不循环数组,每each作用一下只移动一下指针,到数组末尾返回值为false,于是放在while中就最合适不过了

    <?php    $arr = array('one'=>'a','two'=>'b', 'three'=>'c');    while(list($key, $val) = each($arr)){        echo $key.' => '.$val.'<br/>';    }

    效果

    4、使用数组内部指针移动函数

    数组内部指针默认指向数组中的第一个元素,函数大致有,current():返回当前指针指向数组中位置的元素值;key():返回当前指针指向数组中位置的元素键;next():将指针移动到下一个元素位置;prev():将指针移动到前一个元素位置;reset():将数组指针一到那个到数组第一个元素的位置;end():将数组指针移动到数组最后一个元素的位置。它们作用的参数均为数组变量本身,而结合do...while又可实现数组的顺序和逆序遍历。

    <?php    echo 'key:'.key($arr).' current:'.current($arr).'<br/>';  //当前键和值,默认指向数组第一个元素    next($arr);  //后移一个,指向第二个元素    echo 'key:'.key($arr).' current:'.current($arr).'<br/>';  //当前键和值    next($arr);   //再后移一个,指向第三个元素    echo 'key:'.key($arr).' current:'.current($arr).'<br/>';  //当前键和值    prev($arr);   //前移一个,指向第二个元素    echo 'key:'.key($arr).' current:'.current($arr).'<br/>';  //当前键和值    end($arr);    //移动到数组最后一个元素    echo 'key:'.key($arr).' current:'.current($arr).'<br/>';  //当前键和值    reset($arr);  //移动到数组第一个元素    echo 'key:'.key($arr).' current:'.current($arr).'<br/>';  //当前键和值

    效果

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表