数组指针

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

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

输出结果

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

2.使用each循环数组

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

输出结果

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

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

<?php

/**
* 使用数组的指针函数实现数据类循环队列读取数据
*/
$listArr = [
'1232','2456','7789','8976',
'5678','3456','2347','9876',
'3451','7744','2212','3214',
]; /**
* [getNextvalue 根据当前值获取数组值下一个值]
* @Author lisiqiong
* @DateTime 2019-04-25
* @param [type] $value [description]
* @return [type] [description]
*/
function getNextvalue($listArr,$value){
$count = count($listArr);
$keyArr = array_keys($listArr,$value);
$key = $keyArr[0];
if(($key+1)!=$count){
for($i=0;$i<=$key;$i++){
next($listArr);
}
}
return current($listArr);
} $value = getNextvalue($listArr,'2456');
echo "2456的下一个是{$value}".PHP_EOL; $value = getNextvalue($listArr,'3214');
echo "3214的下一个是{$value}".PHP_EOL;

运行结果

2456的下一个是7789
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. javassist和jdk动态代理

    先来一个InvocationHandler示例,InvocationHandler类的作用是:对原始对象的方法做一个拦截. package com.zhang; import java.lang.re ...

  2. hibernate--一级和二级缓存(使用Ehcache)以及查询缓存

    https://blog.csdn.net/u012411414/article/details/50483185 有一下几点需要理清才行: 一级缓存是session缓存 session关闭就小时 二 ...

  3. property 的详细使用方法

    property(fget=None, fset=None, fdel=None, doc=None)  俗话说条条大路通罗马,同样是完成一件事,Python 其实提供了好几个方式供你选择. prop ...

  4. 链表(list)的实现(c语言)

    链表是一种基本的数据结构,今天练习了一下,所以将代码贴在下面,代码测试通过,代码还可以优化,我会过段时间就会增加一部分或者优化一部分直达代码无法优化为止,我的所有数据结构和算法都会用这样的方式在博客上 ...

  5. 使用pool的多进程,不执行的问题

    from multiprocessing import Pool def fetch_data(idlist,test): pass p=Pool(4) result=[] for i in rang ...

  6. linux上定时运行scrapy

    1 运行方式一 (proxy-ip) [root@192 ~]# cd /data/test-proxy-ip/ (proxy-ip) [root@192 test-proxy-ip]# scrapy ...

  7. DevExpress v17.2新版亮点—.NET Reporting篇(二)

    用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了.NET Reporting v17.2 的新功能,快来下载试用新版本! 支持AS ...

  8. Translate Exercises(3) 科技英语翻译

    [1] CMOS logic is a newer technology, based on the use of complementary MOS transistorsto perform lo ...

  9. mybatis之sql执行有数据但返回结果为null

    最近在使用mybatis查询数据库时,发现在pl/sql中单独执行sql时结果是有值的,但是在程序中拿到的却是null,相关配置如下: (1) <resultMap type="mon ...

  10. 截图保存 matlab

    file=dir('D:\Program Files\MATLAB\R2014a\bin\MyPro\OCR\图像中时间识别\')for i=3:length(file) path= strcat(' ...