php中foreach循环(for循环和foreach)

上一节我们学习了do while循环的使用以及语法,这一节我们学习foreach循环。

foreach循环实在太特殊了,我想本篇文章想详细的介绍,那是万万不能啊!毕竟我自身也只是学习了foreach的冰山一角。foreach从语法结构上来说,可以写成 as $key => $value 的形式,这样的话,就能完美的实现索引数组和关联数组同时使用循环并进行兼容。对于关联数组而言是一个福音,而其他语言中把关联数组成为对象 亦或是 键值对,这种特殊数据结构使用关联数组存储非常方便,在foreach的循环下,大放光彩!而我们实际工作中发现,关联数组的数据多数是用foreach来循环的,很少用for或者while循环。

言不多说,代码为证!我们将展示 foreach循环结构如何书写,如图:

php中foreach循环(for循环和foreach)

foreach循环打印键值

这样一个索引数组和关联数组混合的数组,进行循环,恰好展示了foreach循环的强大,如果不写 $key=>也是可以的,不过就获取不到key了,在一些循环中,开发者或者用户不关心key的情况下,可以不写 $key=> 直接写 foreach($array as $value) 这样也是很方便的。

有人疑惑了,这个foreach循环要不要来看流星雨呢?(参照前一篇文章) 我想说的是,钱不够,演员未定,剧本暂无,怎么拍?!!郑小爽同学都和张大翰各奔东西了,流星雨怕是来不了了。

当然了想用foreach来实现 in_array array_search array_combine的话 简单的很啊,和while for循环一样 只要循环遍历就行了,这里我就不举例了,毕竟我用其他循环写过好多次这东西了(事实上是头条提醒我发现这几篇内容出现了重复,需要人工审查),我能怎么办……,我也很绝望啊!

虽然说代码相似度确实很高,但是简单粗暴的这样认为还是有些不智能,不友好啊!

在foreach循环中,我们可以给$value加上地址引用 也就是加一个&,且看代码

php中foreach循环(for循环和foreach)

使用地址引用改变原数组

这样是可以改变原数组的,如果不加&地址引用,你直接赋值$value是不会影响$array的。这就给我们提供了一种可能,在实际生产应用中,循环的内部遇到特殊情况对原数组进行重新赋值或者改变,是很有必要的,并不是所有的循环仅仅是为了读数据,有了这个功能,我们可以往里面写数据,当然用 $array[$key]的方式也可以做到同样效果,但是那就得多写一个 $key=>不是吗?一个喜欢偷懒的人是不会这么做的(捂脸……)

foreach循环本身内部采用游标模式实现数组遍历,移动到最后一个元素的时候,循环就相应的结束了,不需要我们写循环跳出条件,不需要担心循环起始条件,一个智能又放心的循环结构,用起来真的是非常省心。既然有这个优势,缺点也就明显的暴露出来了,比如说,想实现1到100的循环,那么这个foreach就不好做了,毕竟不像for循环可以写的那么直接,此时就需要先把$array=range(1,100);这样进行赋值,形成一个数组,然后循环这个数组,与其说foreach是循环,更不如说foreach是专门为了循环数组对象等数据结构而产生的,for while do while是真正的循环结构,它们可以用来循环数组,也可以用来循环业务逻辑,这正是循环结构的本身精髓所在!

foreach本身的方便我是说不完的,不如交给需要解决问题的你在实际的工作业务中自己去探索发现,你会明白,这真的是传说中的神器!!

版权声明:本文内容由互联网用户投稿发布,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2211788188@qq.com 举报,一经查实,本站将立刻删除。如需转载请注明出处:https://www.wptmall.com/a/article/17636

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注