数组指针

1.介绍几个数组指针的函数

  • current() - 返回数组中的当前单元
  • end() - 将数组的内部指针指向最后一个单元
  • prev() - 将数组的内部指针倒回一位
  • reset() - 将数组的内部指针指向第一个单元
  • each() - 返回数组中当前的键/值对并将数组指针向前移动一步
  1. <?php
  2. $listArr = [
  3. '1232','2456','7789','8976',
  4. '5678','3456','2347','9876',
  5. '3451','7744','2212','3214',
  6. ];
  7. echo "第一个元素".key($listArr).'=>'.current($listArr).PHP_EOL;
  8. next($listArr);
  9. echo "第二个元素".key($listArr).'=>'.current($listArr).PHP_EOL;
  10. next($listArr);
  11. echo "第三个元素".key($listArr).'=>'.current($listArr).PHP_EOL;
  12. end($listArr);
  13. echo "最后一个元素".key($listArr).'=>'.current($listArr).PHP_EOL;
  14. prev($listArr);//内部指针倒回一位
  15. echo "倒数第二位".key($listArr).'=>'.current($listArr).PHP_EOL;
  16. reset($listArr);
  17. echo "第一个元素".key($listArr).'=>'.current($listArr).PHP_EOL;

输出结果

  1. 第一个元素0=>1232
  2. 第二个元素1=>2456
  3. 第三个元素2=>7789
  4. 最后一个元素11=>3214
  5. 倒数第二位10=>2212
  6. 第一个元素0=>1232

2.使用each循环数组

  1. <?php
  2. $listArr = [
  3. '1232','2456','7789','8976',
  4. '5678','3456','2347','9876',
  5. '3451','7744','2212','3214',
  6. ];
  7. //使用each方法遍历数组
  8. reset($listArr);
  9. while(list($key,$value) = each($listArr)){
  10. echo "key:{$key},value:{$value}".PHP_EOL;
  11. }

输出结果

  1. key:0,value:1232
  2. key:1,value:2456
  3. key:2,value:7789
  4. key:3,value:8976
  5. key:4,value:5678
  6. key:5,value:3456
  7. key:6,value:2347
  8. key:7,value:9876
  9. key:8,value:3451
  10. key:9,value:7744
  11. key:10,value:2212
  12. key:11,value:3214

3.使用数组指针取出当前值的下一个值,环形取

  1. <?php
  2. /**
  3. * 使用数组的指针函数实现数据类循环队列读取数据
  4. */
  5. $listArr = [
  6. '1232','2456','7789','8976',
  7. '5678','3456','2347','9876',
  8. '3451','7744','2212','3214',
  9. ];
  10. /**
  11. * [getNextvalue 根据当前值获取数组值下一个值]
  12. * @Author lisiqiong
  13. * @DateTime 2019-04-25
  14. * @param [type] $value [description]
  15. * @return [type] [description]
  16. */
  17. function getNextvalue($listArr,$value){
  18. $count = count($listArr);
  19. $keyArr = array_keys($listArr,$value);
  20. $key = $keyArr[0];
  21. if(($key+1)!=$count){
  22. for($i=0;$i<=$key;$i++){
  23. next($listArr);
  24. }
  25. }
  26. return current($listArr);
  27. }
  28. $value = getNextvalue($listArr,'2456');
  29. echo "2456的下一个是{$value}".PHP_EOL;
  30. $value = getNextvalue($listArr,'3214');
  31. echo "3214的下一个是{$value}".PHP_EOL;

运行结果

  1. 2456的下一个是7789
  2. 3214的下一个是1232

phper必知必会之数组指针(四)的更多相关文章

  1. Java面试必知必会:基础

    面试考察的知识点多而杂,要完全掌握需要花费大量的时间和精力.但是面试中经常被问到的知识点却没有多少,你完全可以用 20% 的时间去掌握 80% 常问的知识点. 一.基础 包括: 杂七杂八 面向对象 数 ...

  2. python网络爬虫,知识储备,简单爬虫的必知必会,【核心】

    知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌 ...

  3. H5系列之History(必知必会)

    H5系列之History(必知必会)   目录 概念 兼容性 属性 方法 H5方法       概念     理解History Api的使用方式 目的是为了解决哪些问题   作用:ajax获取数据时 ...

  4. 第5节:Java基础 - 必知必会(下)

    第5节:Java基础 - 必知必会(下) 本小节是Java基础篇章的第三小节,主要讲述Java中的Exception与Error,JIT编译器以及值传递与引用传递的知识点. 一.Java中的Excep ...

  5. Elasticsearch必知必会的干货知识一:ES索引文档的CRUD

    ​ 若在传统DBMS 关系型数据库中查询海量数据,特别是模糊查询,一般我们都是使用like %查询的值%,但这样会导致无法应用索引,从而形成全表扫描效率低下,即使是在有索引的字段精确值查找,面对海量数 ...

  6. MySQL必知必会(第4版)整理笔记

    参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...

  7. 【MySQL 基础】MySQL必知必会

    MySQL必知必会 简介 <MySQL必知必会>的学习笔记和总结. 书籍链接 了解SQL 数据库基础 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文 件或一 ...

  8. 必知必会之 Java

    必知必会之 Java 目录 不定期更新中-- 基础知识 数据计量单位 面向对象三大特性 基础数据类型 注释格式 访问修饰符 运算符 算数运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 三目表达式 ...

  9. Java面试必知必会(扩展)——Java基础

    float f=3.4;是否正确? 不正确 3.4是双精度,将双精度赋值给浮点型属于向下转型,会造成精度损失: 因此需要强制类型转换: 方式一:float f=(float)3.4 方式二:float ...

  10. 闻道Go语言,6月龄必知必会

    大家好,我是马甲哥, 学习新知识, 我的策略是模仿-->归纳--->举一反三, 在同程倒腾Go语言一年有余,本次记录<闻道Go语言,6月龄必知必会>,形式是同我的主力语言C#做 ...

随机推荐

  1. Word发布到cnblogs文章

        1◆ 打开word 2◆ 注册用户   3◆ 操作 success

  2. customization arm ubuntu rootfs

    requirment: want to get arm ubuntu rootfs method: base on debootstrap tool, customization full funct ...

  3. eclipse设置(颜色,字体等)

    1.设置jsp中js块的颜色: 选择Preferences菜单项.在弹出的窗口的左侧树形菜单依次选择:MyEclipse.Files and Editors.Javascript.Editor.Syn ...

  4. Python & PyCharm & Django 搭建web开发环境

    一.安装软件 1.安装 Python 2.7.PyCharm.pip(Python包管理工具).Django ( pip install Django) 二.部署 1.PyCharm 新建Django ...

  5. js取的随机数

    Math.round(Math.random()*1000+1) ;//取得1-1000的随即数

  6. vue+ajax+bootstrap+python实现增删改

    http://www.cnblogs.com/xwwin/p/5816527.html script src= " http://code.jquery.com/jquery.min.js ...

  7. jquery的ajax post 方法传值到后台,无法通过HttpServletRequest得到

    今天通过$.ajax({type:"post"});和$.post()方法传值到后台,发现servelet通过HttpServletRequest无法获取到值,但通过get方法却可 ...

  8. MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(一)

    你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的 ...

  9. 不挣扎了,MVC验证错误信息汇总是酱紫的

    public static string GetModelErros(this ModelStateDictionary dic) { var sb = new StringBuilder(); va ...

  10. 在Emacs中使用GNU Global

    背景 在我平时用Emacs编写C代码时,经常需要进行代码的跳转,主要需求为函数定义的跳转,某个具体函数的调用查找,某个结构体的定义跳转以及结构体中具体某一项的跳转等,GNU Global就能完全满足我 ...