php 自带了很多有用的数组函数,有些甚至可以避免使用 foreach
array_map
这个函数提供了迭代数组的能力,并且会把迭代的值传递进第一个参数指向的函数中
1 |
|
array_filter
1 |
|
array_reduce
这个函数很有意思,总共接受三个参数.参数一是输入的数组,参数二是闭包,参数三是参数二接受的参数的第一个参数的初始值.
参数二闭包接受两个参数,第一个是上一次迭代时这个闭包的返回值,第一次迭代时该参数为函数的第三个参数.如果不指定第三个参数默认为null.闭包的第二个参数是和array_map闭包的参数一样,都是每次迭代时的值,依然无法获取key
1 |
|
array_walk
这个函数可以看做升级版的 array_map ,接受三个参数,数组 , 闭包和一个可选的自定义值
但是值得注意的是,这个函数不是通过返回值接受处理好的值的,返回值是一个bool值,代表这迭代是否处理完成.
并且这个函数的接受的数组是引用传递的,也就是说在函数内对$val和$key的操作,会直接反应到数组本身
这个函数可以完全当做 foreach 使用
1 |
|