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。如果数组改变了,此函数的行为将不可预测