资讯专栏INFORMATION COLUMN

PHP函数补完计划:数组排序 array_reduce()

why_rookie / 2165人阅读

摘要:这里的第三个参数设定了个空数组,所以它不仅作为第一个传入自定义函数的值,也会作为的返回值给我们想要的结果以上代码最终的返回值为原文

之前在segmentfault里提了个问题
有个数组,让红框里的键值连续0123456789而不是每次都重新0123,0123
想道用array_merge重新整合但是不知道循环该怎么写

有位叔给出了一个超级简单的方法,看了下 array_reduce()函数,顿时开朗

关于 array_reduce()
mixed array_reduce ( array $input , callback $function [, int $initial ] )
它将$input数组分别迭代到自定义回调函数$function中去,如果设定了第一个函数$initial ,则$initial 作为第san个数组处理

eg 1

这里php4.3的版本输出的是
Dog-Cat-Horse
而php5以后的版本输出的是
-Dog-Cat-Horse
原因可能为5.3的版本因为就算没有传第三个参数,也默认把空值传到回调函数中
这样第一次传到my function里的值为“”和Dog

eg2

$b输出15,几次传值分别为1+2,3+3,6+4,10+5
$c输出1200,几次传值分别为101,102,203,604,240*5

回到最初的问题

我们来看array_reduce()的对第三个参数的官方解释:如果指定了可选参数 initial,该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。
这里的第三个参数设定了个空数组array(),所以它不仅作为第一个传入自定义函数merge()的值,也会作为array_reduce()的返回值给我们想要的结果
以上代码最终的返回值为
array(9) {
[0]=>
int(1)
1=>
int(2)
2=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
[7]=>
int(8)
[8]=>
int(9)
}
原文:http://www.imotaku.net/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20824.html

相关文章

  • Laravel 管道流原理

    摘要:管道流原理强烈依赖函数,我们先来了解下函数的使用。第二次迭代时,的值为上述返回的闭包伪代码,的值为,返回一个闭包,当我们执行这个闭包时,满足,得到结果。自定义中间件为的管道流核心类在的方法中,为上述的闭包,为要通过的中间件数组,为对象。 Laravel管道流原理强烈依赖array_reduce函数,我们先来了解下array_reduce函数的使用。 原标题PHP 内置函数 array_...

    Mr_zhang 评论0 收藏0
  • Laravel学习笔记之Middleware源码解析

    摘要:学习笔记之已经聊过使用了来设计,看源码发现其巧妙用了和的一些数组函数来设计。开发环境内置函数和看源码之前,先看下这几个内置函数的使用。学习笔记之实例化源码解析已经聊过的实例化,得到中的变量,即的实例化对象。后面再学习下的源码,到时见。 说明:本文主要学习Laravel的Middleware的源码设计思想,并将学习心得分享出来,希望对别人有所帮助。Laravel学习笔记之Decorato...

    _Dreams 评论0 收藏0
  • Laravel核心解读--中间件(Middleware)

    摘要:解析出后将进入应用的请求对象传递给的方法,在方法负责处理流入应用的请求对象并返回响应对象。携带了本次迭代的值。通过这种方式让请求对象依次流过了要通过的中间件,达到目的地的方法。 中间件(Middleware)在Laravel中起着过滤进入应用的HTTP请求对象(Request)和完善离开应用的HTTP响应对象(Reponse)的作用, 而且可以通过应用多个中间件来层层过滤请求、逐步完善...

    enda 评论0 收藏0
  • Laravel中间件原理

    摘要:直到所有中间件都执行完毕,最后在执行最后的即上述的方法如果上述有地方难懂的,可以参考这边文章内置函数在中的使用以上是在通过全局中间件时的大致流程,通过中间件和路由中间件也是一样的,都是采用管道流操作,详情可翻阅源码 简介 Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求, 如ValidatePostSize用来验证POST请求体大小、ThrottleReque...

    张宪坤 评论0 收藏0
  • PHP开发过程中数组汇总 [ 持续更新系列 ]

    摘要:必选规定被搜索的数组可选如果设置为,则在数组中检查给定值的类型,默认是搜索数组中是否存在指定的值。回调函数接受的参数数目应该和传递给函数的数组数目一致。 开发过程中经常会使用到数组函数,故特地总结出来,自己熟悉,同时供大家参考!(实例部分会抽空尽快完成) 一、目录 array_merge(); 合并数组 array_keys(); array_filter(); in_array()...

    twohappy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<