php 值怎么循环,foreach循环获取第一个和最后一个元素?
引言
对于数组遍历,使用一个 foreach 几乎就完全够用了。那么你一般在编写代码的时候,怎么判断是循环的第一个元素,和最后一个元素呢?
本文通过几个示例,展示实现此功能的多种方法。
首先,我们使用最直接,最容易想到的办法,使用一个计数器 $i 用于标记当前的索引位置。如果是第一个,则 $i == 0;如果是最后一个,则 $i 等于数组长度减一。代码如下:
$i = 0; $len = count($array); foreach ($array as $item) { if ($i == 0) { // first } else if ($i == $len 1) { // last } $i++; }
上述代码实现简单直接,但是写的优点太长了,而且也不美观。有没有更优雅一些的方式呢?
我们试着从PHP数组操作函数上着手,内置函数中提供了 reset,用于将指针指向数组的第一个元素;end 函数,将指针指向数组的最后一个元素。下面的代码,就是这样实现的:
foreach($array as $key => $element) { reset($array); if ($key === key($array)) echo 'FIRST ELEMENT!'; end($array); if ($key === key($array)) echo 'LAST ELEMENT!'; }
函数 key() 用于获取当前数组指针所指向的索引值。
而 foreach 循环内将元素匹配到 $key => $element 两个变量,$key 存储循环所指向的索引位置。
PHP 的数组操作函数为我们提供了思路,那么当然还可以用 prev 函数,返回前一个元素的值;使用 next 函数,获取下一个元素的值。
这两个函数都是在获取不到元素时返回 false。那么代码就可以这样来写了:
foreach( $items as $item ) { if( !prev( $items ) ) { echo 'First Item'; } if( !next( $items ) ) { echo 'Last Item'; } }
写在最后本文通过三种方式实现了定位 foreach 循环体内,第一个元素和最后一个元素的方法。希望大家熟练使用。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
endwhile是什么意思?
结束while循环while(0)endwhile他和whlie(0){}是一样的PHP支持两种写法不过我感觉有点不伦不类。。。
PHP中如何使用foreach循环遍历数组求681043中的最大值和最小值?
不需要使用 foreach 就能从数组 6、8、10、4、3 求出最大最小值,可以使用以下代码:
for循环先执行循环语句还是条件?
直接上答案,是先判断条件再执行。如果初值不满足条件,一次都不执行。举个例子,
for
(i
=
100;
i
<
100;
i++)
printf("why?");
是没有输出的。
您好,以上就是PHP for循环先执行循环语句还是条件问题的答案,希望可以帮助到你,对你有用,记得关注点赞,感恩遇见,谢谢。
java学习路径是怎样的?
给您推荐Java学习路线图,是菊厂童鞋做开发经常使用的一些技术和工具,希望能帮助到您~
前端部分:1)HTML:网页的核心语言,构成网页的基础2)CSS:使网页更加丰富多彩灿烂的利器3)JavaScript:使网页动起来的根本,加强了网页和用户之间的交互4)HTML DOM:换一种更加形象化的角度来看待网页,让我们更加方便的控制网页5)HTML BOM:与浏览器交互不可或缺的工具6)JavaScript库,主要是:jQuery及其插件、YUI及其插件,使编写网页更加的方便快捷和健壮的强大工具7)AJAX:异步提交,增强了用户使用网页的良好交互体验8)JSON:比 XML更小、更快,更易解析的数据传输工具9)FLEX:提供丰富多彩的动画效果10)普元工作流:更加清晰明了的帮助用户处理业务流程上面的工作11)JSP:Servlet的展示层,使网页逻辑与网页设计的显示分离12)JSTL:加强和简化了JSP页面的开发13)EL:使JSP页面写起来更加简单后台部分:1)JAVA语言编程基础部分:内容丰富是Java知识体系结构的核心和基础2)JDBC:提供了一种基准,据此可以构建更高级的工具和接口,使Java开发人员能够编写数据库应用程序3)JavaMail:用于电子邮件的相关的编程工作4)JUnit:单元测试,整个变成工作测试的地位始终非常重要5)Log4j:使我们能够更加细致地控制日志的生成过程6)Servlet:JavaWeb的核心7)Struts2:JavaWeb编程中明星级的框架,优点多功能强使编程工作更简单,主要用于控制跳转8)Spring:JavaWeb编程中明星级的框架,同样优点多功能强使编程工作更简单,主要用于管理对象9)iBatis:JavaWeb编程中明星级的框架,同样也是优点多功能强使编程工作更简单,主要用于程序和数据库之间的交互10)SQL:与数据库交互式编程的必备工具版本控制:1)SVN:版本控制,方便团队协同工作WEB服务器:1)Tomcat:优秀免费的中小型WEB服务器2)Weblogic:功能很强大的WEB服务器开发工具:1)Eclipse:开源强大的Java编程工具2)MyEclipse:在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境数据库:1)Oracle:数据库业界老大,这个常用一点当然,也仅仅是常用一些常用的功能而已,需要加强2)MySQL:最好的关系型数据库之一3)SqlServer:最好的关系型数据库之一数据库客户端:1)Toad:非常棒的数据库客户端软件操作系统:1)Windows2)Linux远程登录的会话工具:1)SSH:一直在用,非常不错其他:各种种类和版本的浏览器(推荐使用FireFox)、office办公软件系列、各种文本编辑器(推荐Sublime)、各种阅读器等等下面是从网上找的三幅图片,比较好的说明了作为一个Java程序员的学习路线图,这里作为一种自我提醒的工具,不时看看,并且会赶紧修补自己的知识树!1、Java的知识体系结构2、JavaWeb开发的基本学习路线图3、JavaWeb开发的成长路线图第一部分:Java高级学习课程大纲
1、工程化专题我们的工程化专题有五大内容:Maven、Nexus 、jenkins、代码审查 、Git/SVN一共耗时一个月2、源码分析专题源码分析有三大内容: spring的源码分析,里面包括FactoryBean和MVC和事务处理与Spring源码中设计模式分析;持久层 ;企业级开发前瞻,一共耗时2个月3、高并发与高性能高并发与高性能有四大内容:并发编程, 里面又包含有线程安全和NIO和AIO 。异步通信,里面包含有本地队列和消息中间件。分布式协调技术,里面包含有Zookeeper和服务锁 。NoSqI: 里面包含有 MongoDB和Redis和Memcached 。一共耗时2个月4、高可用性与可扩展高可用性与可扩展有两大内容: 分布式架构介绍,里面有导流技术和服务设计和存储设计。服务调用,里面包含有WebService和Dubbo。 一共耗时2个月5、性能优化性能优化有四大内容:优化技巧,如何寻找性能瓶颈。JVM优化。数据库优化。服务器优化。一共耗时2个月上面这五大专题,是几位工作经验十多年的大牛,根据自己往年的工作经验与经历,在根据现在科技发展的实际情况,历经几个月的时间编写而成,换句话说,上面的五大专题,也就是他们这十几年精华总结,现在,您只要按照上面的课题学习,只需要花费掉七个月多的时间,就能够学会与理解几位大牛十多年总结出来的精华。学完这些,还怕公司老总不给涨工资和升职么?第二部分:阶段性的学习
学什么东西都一样,小宅相信大家也是一样,在学东西的时候,总会安排好自己阶段性的学习,这样才能有效的提升自己与有效的理解和认知所学的知识。合理安排好,才能起到事半功倍的效果。阶段一:阶段二:阶段三:阶段四:阶段五: