介绍
这篇文章给大家介绍使用php怎么实现函数式编程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
具体如下:
//,函数式编程 $ users =,阵列( 数组才能(& # 39;id # 39;,=祝辞,1,& # 39;名字# 39;,=祝辞,& # 39;他们# 39;,,& # 39;年龄# 39;,=祝辞,29日,& # 39;性别& # 39;,=祝辞,& # 39;男& # 39;), 数组才能(& # 39;id # 39;,=祝辞,2,& # 39;名字# 39;,=祝辞,& # 39;abc2& # 39;,, & # 39;年龄# 39;,=祝辞,21日,& # 39;性别& # 39;,=祝辞,& # 39;女& # 39;), 数组才能(& # 39;id # 39;,=祝辞,3,& # 39;名字# 39;,=祝辞,& # 39;abc3& # 39;,, & # 39;年龄# 39;,=祝辞,23日,& # 39;性别& # 39;,=祝辞,& # 39;男& # 39;), 数组才能(& # 39;id # 39;,=祝辞,4,& # 39;名字# 39;,=祝辞,& # 39;abc4& # 39;,, & # 39;年龄# 39;,=祝辞,25日,& # 39;性别& # 39;,=祝辞,& # 39;女& # 39;), 数组才能(& # 39;id # 39;,=祝辞,5日,& # 39;名字# 39;,=祝辞,& # 39;abc5& # 39;,, & # 39;年龄# 39;,=祝辞,20日,& # 39;性别& # 39;,=祝辞,& # 39;女& # 39;), 数组才能(& # 39;id # 39;,=祝辞,6日,& # 39;名字# 39;,=祝辞,& # 39;abc6& # 39;,, & # 39;年龄# 39;,=祝辞,24日,& # 39;性别& # 39;,=祝辞,& # 39;男& # 39;), 数组才能(& # 39;id # 39;,=祝辞,7日,& # 39;名字# 39;,=祝辞,& # 39;abc7& # 39;,, & # 39;年龄# 39;,=祝辞,28日,& # 39;性别& # 39;,=祝辞,& # 39;女& # 39;), 数组才能(& # 39;id # 39;,=祝辞,8日,& # 39;名字# 39;,=祝辞,& # 39;abc8& # 39;,, & # 39;年龄# 39;,=祝辞,27日,& # 39;性别& # 39;,=祝辞,& # 39;男& # 39;), );//获取性别为女的用户 arrayFilter 美元;=,array_filter($用户,函数($ item) { return 才能;$ item[& # 39;性别& # 39;],==,& # 39;女& # 39;,; });//,不影响原数组,返回一个新数组 arrayMap 美元;=,到函数($ item) { return 才能;阵列( ,,,& # 39;id # 39;,=祝辞,美元项目[& # 39;id # 39;], ,,,& # 39;名字# 39;,=祝辞,美元项目[& # 39;名字# 39;], ,,,& # 39;年龄# 39;,=祝辞,美元项目[& # 39;年龄# 39;], ,,,& # 39;性别# 39;,=祝辞,美元项目[& # 39;性别& # 39;],==,& # 39;男& # 39;,?,& # 39;男性# 39;,:,& # 39;女# 39; ,,); },,用户);//,修改原数组,对年龄+ 10处理,同时新增索引性别、返回值,1,或0 array_walk(用户、美元,函数(和项目,美元,美元指数){ 美元才能项目[& # 39;性别# 39;],=,美元项目[& # 39;性别& # 39;],==,& # 39;男& # 39;,?,& # 39;男性# 39;,:,& # 39;女# 39;; if 才能;(index 美元;%,2,==,0),{ ,,,$ item[& # 39;年龄# 39;],+=,10; ,,} });//的形式(array input 美元;,,callable function 美元;[initial 美元,=,NULL ]),用回调函数迭代地将数组简化为单一的值//,求最大年龄的用户,返回最大年龄用户信息 arrayReduce 美元;=,形式用户,美元,函数(init美元,,val) { return 才能;$ init(& # 39;年龄# 39;],祝辞,val美元[& # 39;年龄# 39;],?,init 美元;:,val美元; },,数组(& # 39;年龄# 39;,=祝辞,0));//,求平均年龄 avgAge 美元;=,形式用户,美元,函数(init美元,,项目美元){ return 才能;init 美元+,美元项目(& # 39;年龄# 39;); },,0),/,count($用户);/* ,* array_reduce 的内部实现方式 function 形式(数据,美元,美元的回调,,最初的美元),{ foreach 才能;(data 美元;as index 美元;=祝辞,val美元),{ ,,,initial 美元;=,美元的回调(初始美元,,val); ,,} return 才能;初始美元; } *///用到和array_mutisort来排序,//利用到获取要依据排序的数组,(匿名函数,create_function (args美元,return val美元))//arrField 美元;=,到(create_function(& # 39;项目# 39;美元,& # 39;return $ item [“age"]; & # 39;),,用户)美元;,【不推荐】 arrField 美元;=,到函数($ item) { return 才能;$ item[& # 39;年龄# 39;]; },,用户);//利用array_mutisort来进行年龄从大到小排的序 arrSort 美元;=,对(SORT_DESC, arrField美元,美元的用户),
//闭包实现计数器 function 计数(),{ 时间=美元才能a 1;//才能,闭包,引用变量一美元 return 才能;()函数,使用(和一个美元),{ ,,,return 美元+ +; ,,}; } $ countFunc =,计数(); echo countFunc美元();//,1 echo countFunc美元();//,2 echo countFunc美元();//,3 echo countFunc美元();,//,4
关于使用php怎么实现函数式编程就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。