phper必知必会之数组指针(四)
数组指针
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必知必会之数组指针(四)的更多相关文章
- Java面试必知必会:基础
面试考察的知识点多而杂,要完全掌握需要花费大量的时间和精力.但是面试中经常被问到的知识点却没有多少,你完全可以用 20% 的时间去掌握 80% 常问的知识点. 一.基础 包括: 杂七杂八 面向对象 数 ...
- python网络爬虫,知识储备,简单爬虫的必知必会,【核心】
知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌 ...
- H5系列之History(必知必会)
H5系列之History(必知必会) 目录 概念 兼容性 属性 方法 H5方法 概念 理解History Api的使用方式 目的是为了解决哪些问题 作用:ajax获取数据时 ...
- 第5节:Java基础 - 必知必会(下)
第5节:Java基础 - 必知必会(下) 本小节是Java基础篇章的第三小节,主要讲述Java中的Exception与Error,JIT编译器以及值传递与引用传递的知识点. 一.Java中的Excep ...
- Elasticsearch必知必会的干货知识一:ES索引文档的CRUD
若在传统DBMS 关系型数据库中查询海量数据,特别是模糊查询,一般我们都是使用like %查询的值%,但这样会导致无法应用索引,从而形成全表扫描效率低下,即使是在有索引的字段精确值查找,面对海量数 ...
- MySQL必知必会(第4版)整理笔记
参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...
- 【MySQL 基础】MySQL必知必会
MySQL必知必会 简介 <MySQL必知必会>的学习笔记和总结. 书籍链接 了解SQL 数据库基础 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文 件或一 ...
- 必知必会之 Java
必知必会之 Java 目录 不定期更新中-- 基础知识 数据计量单位 面向对象三大特性 基础数据类型 注释格式 访问修饰符 运算符 算数运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 三目表达式 ...
- Java面试必知必会(扩展)——Java基础
float f=3.4;是否正确? 不正确 3.4是双精度,将双精度赋值给浮点型属于向下转型,会造成精度损失: 因此需要强制类型转换: 方式一:float f=(float)3.4 方式二:float ...
- 闻道Go语言,6月龄必知必会
大家好,我是马甲哥, 学习新知识, 我的策略是模仿-->归纳--->举一反三, 在同程倒腾Go语言一年有余,本次记录<闻道Go语言,6月龄必知必会>,形式是同我的主力语言C#做 ...
随机推荐
- kill word fore out
1● fore f ɔ: 预先,前面
- .Net在线编辑器:KindEditor及CkEditor+CkFinder配置说明
Net在线编辑器:KindEditor及CkEditor+CkFinder配置说明 一.KindEditor(免费) KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所 ...
- Crystal Report Error: Either the Crystal Reports registy key permission are insufficient or the Crystal Reports runtime is not installed correctly
在64位 Windows 7中水晶报表的错误: Crystal Report Error: Either the Crystal Reports registy key permission are ...
- MySQL配置优化需要避免的误区
Caution: Don't overwrite your entire my.cnf at once when tuning MySQL. One or two changes per restar ...
- Java IO流经典练习题
一.练习的题目 (一) 在电脑D盘下创建一个文件为HelloWorld.txt文件,判断他是文件还是目录,在创建一个目录IOTest,之后将HelloWorld.txt移动到IOTest目录下去:之后 ...
- FZU 1202
http://acm.fzu.edu.cn/problem.php?pid=1202 二分图最大匹配,问哪些边是必要的,O(n^3)的方法 删边的时候把连接关系也要删掉,如果在此基础上无法找到增广路, ...
- 转载: Linux 操作系统挂起、休眠、关机相关命令
最近每天的工作都难以在当天结束,而本人又不是那种善于熬夜的人,因此就需要将电脑中的工作文件全部保存,以往都是将所有工作文件保存关机,但是最近发现Linux系统有一个好神奇的命令: 休眠: sudo p ...
- Codeforces1106F 【BSGS】【矩阵快速幂】【exgcd】
首先矩阵快速幂可以算出来第k项的指数,然后可以利用原根的性质,用bsgs和exgcd把答案解出来 #include<bits/stdc++.h> using namespace std; ...
- POJ 3253 Fence Repair STL 优先队列
这题做完后觉得很水,主要的想法就是逆过程思考,原题是截断,可以想成是拼装,一共有n根木棍,最后要拼成一根完整的,每两根小的拼成一根大的,拼成后的木棍长度就是费用,要求费用最少.显然的是一共会拼接n-1 ...
- 2018-2019-2 20165212《网络攻防技术》Exp5 MSF基础应用
2018-2019-2 20165212<网络攻防技术>Exp5 MSF基础应用 攻击成果 主动攻击的实践 ms17010eternalblue payload windows/x64/m ...