PHP数组游标实现对数组的各种操作详解

5年以前  |  阅读数:1127 次  |  编程语言:PHP 

本文实例分析了PHP数组游标实现对数组的各种操作。分享给大家供大家参考,具体如下:

如何不用foreach实现对数组实现循环?

答:我们只需要模拟foreach就行了,数组在执行foreach循环的时候,是有一个游标指向当前数组循环到的值,

那如果我们能拿到这个游标,并且操作游标,使游标前进或者后退,那么我们就能不用foreach而实现循环数组

直接上代码,清晰直观:


    <?php 
    $arr = array('你','若','安','好','便','是','晴','天');
    //current()函数是取得游标所在数组位置的值
    //next()是使游标向数组的尾部移动一格
    for(;$v=current($arr);next($arr)){
      echo $v,'<br />';
    }
    /*
    返回
    你
    若
    安
    好
    便
    是
    晴
    天
    */
    //那么又如何使游标2步2步一走呢?
    for(;$v=current($arr);){
      echo $v,'<br />';
      next($arr);
      next($arr);
    }
    //执行结果,没有反应,这是为什么呢?
    //原因是前面一个循环游标已经到了数组的最尾部了
    //因此,当执行current($arr)时总是返回false,
    //因此第二个循环是不会执行的
    //因此这里我们会用一个reset()方法来使游标重新指向数组的头部
    reset($arr);
    echo '<hr />';
    for(;$v=current($arr);){
      echo $v,'<br />';
      next($arr);
      next($arr);
    }
    //那么又如何走2步,退一步呢?
    reset($arr);
    echo '<hr />';
    for($flag=true;$v=current($arr);){
      echo $v,'<br />';
      if($flag){
        next($arr);
        next($arr);
        $flag=false;
      }else{
        prev($arr);
        $flag=true;
      }
    }
    /*
    返回
    你
    安
    若
    好
    安
    便
    好
    是
    便
    晴
    是
    天
    晴
    */
    //如何倒着循环呢?
    //这里要用到end()函数了,让数组的游标指向尾部
    end($arr);
    echo '<hr />';
    for(;$v=current($arr);prev($arr)){
      echo $v,'<br />';
    }
    /*
    返回:
    天
    晴
    是
    便
    好
    安
    若
    你
    */
    //注意当数组的值等于0,false,null,undefined,""时,for循环的第二部会返回false,就会使循环终止
    reset($arr);
    echo '<hr />';
    $arr2 = array('你','若',0,'好','便','是','晴','天');
    for(;$v=current($arr2);next($arr2)){
      echo $v,'<br />';
    }
    /*
    返回
    你
    若
    */
    ?>

除了这些还可以用key()函数得到游标所指向的键。

更多关于PHP数组相关内容感兴趣的读者可查看本站专题:《PHP数组(Arrary)总结

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例