当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-07 13:34:49 浏览: 评论:0 

这篇文章主要介绍了PHP数组游标实现对数组的各种操作,结合实例形式较为详细的分析了PHP数组操作中current与next方法控制数组游标移动实现数组遍历的技巧,需要的朋友可以参考下。

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

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

答:我们只需要模拟foreach就行了,数组在执行foreach循环的时候,是有一个游标指向当前数组循环到的值,那如果我们能拿到这个游标,并且操作游标,使游标前进或者后退,那么我们就能不用foreach而实现循环数组,直接上代码,清晰直观:

  1. <?php  
  2. $arr = array('你','若','安','好','便','是','晴','天'); 
  3. //current()函数是取得游标所在数组位置的值 
  4. //next()是使游标向数组的尾部移动一格 
  5. for(;$v=current($arr);next($arr)){ 
  6.   echo $v,'<br />'
  7. /* 
  8. 返回 
  9.  
  10.  
  11.  
  12.  
  13. 便 
  14.  
  15.  
  16.  
  17. */ 
  18. //那么又如何使游标2步2步一走呢? 
  19. for(;$v=current($arr);){ 
  20.   echo $v,'<br />'
  21.   next($arr); 
  22.   next($arr); 
  23. //执行结果,没有反应,这是为什么呢? 
  24. //原因是前面一个循环游标已经到了数组的最尾部了 
  25. //因此,当执行current($arr)时总是返回false, 
  26. //因此第二个循环是不会执行的 
  27. //因此这里我们会用一个reset()方法来使游标重新指向数组的头部 
  28. reset($arr); 
  29. echo '<hr />'
  30. for(;$v=current($arr);){ 
  31.   echo $v,'<br />'
  32.   next($arr); 
  33.   next($arr); 
  34. //那么又如何走2步,退一步呢? 
  35. reset($arr); 
  36. echo '<hr />'
  37. for($flag=true;$v=current($arr);){ 
  38.   echo $v,'<br />'
  39.   if($flag){ 
  40.     next($arr); 
  41.     next($arr); 
  42.     $flag=false; 
  43.   }else
  44.     prev($arr); 
  45.     $flag=true; 
  46.   } 
  47. /* 
  48. 返回 
  49.  
  50.  
  51.  
  52.  
  53.  
  54. 便 
  55.  
  56.  
  57. 便 
  58.  
  59.  
  60.  
  61.  
  62. */ 
  63. //如何倒着循环呢? 
  64. //这里要用到end()函数了,让数组的游标指向尾部 
  65. end($arr); 
  66. echo '<hr />'
  67. for(;$v=current($arr);prev($arr)){ 
  68.   echo $v,'<br />'
  69. /* 
  70. 返回: 
  71.  
  72.  
  73.  
  74. 便 
  75.  
  76.  
  77.  
  78.  
  79. */ 
  80. //注意当数组的值等于0,false,null,undefined,""时,for循环的第二部会返回false,就会使循环终止 
  81. reset($arr); 
  82. echo '<hr />'
  83. $arr2 = array('你','若',0,'好','便','是','晴','天'); 
  84. for(;$v=current($arr2);next($arr2)){ 
  85.   echo $v,'<br />'
  86. /* 
  87. 返回 
  88.  
  89.  
  90. */ 
  91. ?> 

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

Tags: PHP数组游标

分享到: