if you take nothing else away from this guide other than this,
you'll be ahead of many developers.
如果你不离开这个指南,除此之外,你将超越大多数的开发者。


1、array_walk 使用用户自定义函数对数组中的每个元素做回调处理
array_walk(array &$array,callable $callback[,mixed $userdata = NULL])
将用户自定义函数funcname应用到array数组中的每个单元。
array_walk()不会受到array内部数组指针的影响。
array_walk()会遍历整个数组而不管指针的位置。
它的参数
1》array 输入的数组。
2》callback 典型情况下callback接受两个参数。
(array参数的值作为第一个,键名作为第二个)
如果callback需要直接作用于数组中的值,则给callback的
第一个参数指定为引用。这样任何对这些单元的改变也将会
改变原始数组本身。
参数数量超过预期,传入内置函数(例如strtolower()),将抛出警告,
所以不适合当做funcname.
只有array的值才可以被改变,用户不应在回调函数中改变该数组本身
的结构。例如增加/删除单元,unset单元等等。如果array_walk()作用
的数组改变了,则此函数的行为未经定义,且不可预期。
3》userdata
如果提供了可选参数userdata,将被作为第三个参数传递给callback funcname
它的返回值
成功返回true,失败返回false.



2、array_filter
array_filter用回调函数过滤数组中的单元
array array_filter(array $array[,callable $callback[,int $flag=0]])
依次将array数组中的每个值传递到callback函数。
如果callback函数返回true,则array数组的当前值会被包含在返回
的结果数组中。数组的键名保留不变。
它的参数
1》array
要循环的数组
2》callback
使用的回调函数
如果没有提供callback函数,将删除array中所有等值为
false的条目。
3》flag
决定callback接收的参数形式
ARRAY_FILTER_USE_KEY-callback接受键名作为的唯一参数
ARRAY_FILTER_USE_BOTH-callback同时接受键名和键值
它的返回值
返回过滤后的数组
5.6版本添加可选的参数flag,以及常量ARRAY_FILTER_USE_KEY
和ARRAY_FILTER_USE_BOTH

不使用callback的array_filter(),自动过滤值为false,null,''的键值对

带flag标记的array_filter()

Caution警告: 用户不应在回调函数中修改数组本身。
例如增加/删除单元或者对array_filter()正在作用的
数组进行unset。如果数组改变了,此函数的行为将不可预测

Functions should do one thing一个函数应该只做一件事的更多相关文章

  1. 编写高质量代码改善C#程序的157个建议——建议144:一个方法只做一件事

    建议144:一个方法只做一件事 “单一职责原则”(SRP)要求每一个类型只负责一件事情.我们将此概念扩展到方法上,就变成了:一个方法只做一件事. 回顾上一建议的代码,LocalInit和RemoteI ...

  2. 做一个 App 前需要考虑的几件事

    做一个 App 前需要考虑的几件事  来源:limboy的博客   随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 ...

  3. 让一个端口同时做两件事:http/https和ssh

    相信很多人都在YY:能不能让80端口分析连接协议,如果是http协议就让服务器交给http服务程序(如Apache.Nginx等)处理,如果是ssh协议就交给ssh服务程序(如OpenSSH Serv ...

  4. 做一个App前需要考虑的几件事

    本文转载于文章原文链接,版本归原作者所有! 随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 App 有了一定规模后, ...

  5. [转载]做一个 App 前需要考虑的几件事

    本文转自http://limboy.me/tech/2016/07/06/starting-an-app.html ========================================= ...

  6. netty源码理解(一):new一个NioEventLoopGroup的时候做了哪些事

    好了,回到构造方法的调用中

  7. 我在开发第一个Swift App过程中学到的四件事

    本文转载至 http://www.itjhwd.com/wzkfyigeswiftsjs/ 译者注:本文作者Greg Heo,这是他为讲授iOS 8 App Extensions视频教程而实际使用Sw ...

  8. SQL Fundamentals: Using Single-Row Functions to Customize Output使用单行函数自定义输出

    SQL Fundamentals || Oracle SQL语言 DUAL is a public table that you can use to view results from functi ...

  9. jQuery 源码分析:当 selector 传来一个函数时,怎么进行处理?

    本文章为 0.9 版本,将会在稍后润色更新.本文使用的 jQuery 版本为 3.4.0 我们知道使用 $ 操作符时,可以往里面塞很多类型的参数,字符串,对象,函数...,jQuery 会根据不同的参 ...

随机推荐

  1. 《从零开始学Swift》学习笔记(Day 7)——Swift 2.0中的print函数几种重载形式

    原创文章,欢迎转载.转载请注明:关东升的博客 Swift 2.0中的print函数有4种重载形式: l   print(_:).输出变量或常量到控制台,并且换行. l   print(_:_:).输出 ...

  2. 常见的.NET面试题(130)

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成 ...

  3. Shell脚本实现用户数据导入

    #输入:固定格式的用户数据user.sql #处理:循环读取user.sql中的每行(每行对应一条用户数据),依次调用curl命令将用户插入BearyChat #输出:执行结果输出到日志文件outlo ...

  4. FTP上传和下载文件的应用

    FTP(File Transfer Protocol)协议主要用来在网络上进行文件传输.FTP通讯除了有一个默认的端口21外,还有其他端口,同城两个端口同时进行数据传输.一个是默认的端口(通常为21) ...

  5. 烂代码 git blame

    关于烂代码的那些事(上) - Axb的自我修养 http://blog.2baxb.me/archives/1343 关于烂代码的那些事(上) 六月 21, 2015 57 条评论 目录 [显示] 1 ...

  6. 路径规划 Adjacency matrix 传球问题

    建模 问题是什么 知道了问题是什么答案就ok了 重复考虑 与 重复计算 程序可以重复考虑  但往目标篮子中放入时,放不放把握好就ok了. 集合 交集 并集 w 路径规划 字符串处理 42423 424 ...

  7. Extract, Transform, Load

    w https://en.wikipedia.org/wiki/Extract,_transform,_load

  8. ehcache缓存框架简介(一)

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 我们使用EhCache缓存框架主要是为了判断重复Url,每次爬取一个网 ...

  9. [转载]移动页面所需meta元素和Viewport窗口知识点

    Meta标签 vs  Viewport http://www.2cto.com/kf/201409/335779.html http://blog.csdn.net/freshlover/articl ...

  10. 2015-02-08——js笔记

    示例1: 关于事件对象 MSIE:window.event,  cancelBubble,  returnValue,  srcElement, button(鼠标按键,1,4,2,左中右) W3C: ...