array_walk()这是一个淡定而强大的存在!!!walk就是走的意思,无论有多复杂的任务对面过来,它都轻描淡写地用“走”来处理。天,这个函数好屌!比如你有10个孩子(不聊为什么你这么能生。。),让他们每人在合适的年龄去学校里走一圈,好了,他们都...
这是一个淡定而强大的存在!!!
walk就是走的意思,无论有多复杂的任务对面过来,它都轻描淡写地用“走”来处理。
天,这个函数好屌!
比如你有10个孩子(不聊为什么你这么能生。。),让他们每人在合适的年龄去学校里走一圈,好了,他们都认字了!!
这就是你的孩子(数组成员)往学校(一个函数)走过以后发生了变化。
所以array_walk()就是让数组成员每个都被指定函数处理处理,加工加工!
嗯,除了要处理的数组,你要有一个函数(这就是例子里的学校)。
说这么多,没有例子都是白说:
$arr=['水果', '蔬菜', '姑娘'];
function wash($v){
echo "你洗了洗$v !!!";
}
array_walk($arr,'wash');
上边例子运行后会输出:
你洗了洗水果 !!!你洗了洗蔬菜 !!!你洗了洗姑娘 !!!
在这个例子里边,可以看出就是用函数挨个处理了一下数组成员,和我们用foreach好像没啥不一样。
好吧我承认,可好处就是你不用多行去表达一个逻辑,有什么函数直接用array_walk一行一调,真特么干净。
但是,但是!说好我们要加工这个数组成员,加工!调用一遍以后数组成员就不一样了。怎么搞?!
这里就不那么简单了。
看例子:
$arr=['水果', '蔬菜', '姑娘'];
function wash(&$v){
echo "你洗了洗$v !!!";
$v='干净的'.$v;
}
array_walk($arr,'wash');
var_dump($arr);
看!数组里的姑娘干净了!!
注意,在这个函数的形参$v前边,我用粗体写了一个符号“&”!
这是引用的意思,意思就是我直接修改数组里的参数,而不是复制一个再用,这样才能达到效果。
全文详见:http://xpxw.com/?id=106