使用php怎么实现函数式编程
作者
这篇文章给大家介绍使用php怎么实现函数式编程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
具体如下:
//函数式编程 $users=array( array('id'=>1,'name'=>'abc1','age'=>29,'性别'=>'男'), array('id'=>2,'name'=>'abc2','age'=>21,'性别'=>'女'), array('id'=>3,'name'=>'abc3','age'=>23,'性别'=>'男'), array('id'=>4,'name'=>'abc4','age'=>25,'性别'=>'女'), array('id'=>5,'name'=>'abc5','age'=>20,'性别'=>'女'), array('id'=>6,'name'=>'abc6','age'=>24,'性别'=>'男'), array('id'=>7,'name'=>'abc7','age'=>28,'性别'=>'女'), array('id'=>8,'name'=>'abc8','age'=>27,'性别'=>'男'), ); //获取性别为女的用户 $arrayFilter=array_filter($users,function($item){ return$item['性别']=='女'; }); //不影响原数组,返回一个新数组 $arrayMap=array_map(function($item){ returnarray( 'id'=>$item['id'], 'name'=>$item['name'], 'age'=>$item['age'], 'gender'=>$item['性别']=='男'?'male':'female', ); },$users); //修改原数组,对年龄+10处理,同时新增索引gender,返回值1或0 array_walk($users,function(&$item,$index){ $item['gender']=$item['性别']=='男'?'male':'female'; if($index%2==0){ $item['age']+=10; } }); //array_reduce(array$input,callable$function[,$initial=NULL])用回调函数迭代地将数组简化为单一的值 //求最大年龄的用户,返回最大年龄用户信息 $arrayReduce=array_reduce($users,function($init,$val){ return$init['age']>$val['age']?$init:$val; },array('age'=>0)); //求平均年龄 $avgAge=array_reduce($users,function($init,$item){ return$init+$item['age']; },0)/count($users); /* *array_reduce的内部实现方式 functionarray_reduce($data,$callback,$initial){ foreach($dataas$index=>$val){ $initial=$callback($initial,$val); } return$initial; } */ //用array_map和array_mutisort来排序 //利用array_map获取要依据排序的数组,(匿名函数create_function($args,return$val)) //$arrField=array_map(create_function('$item','return$item["age"];'),$users);【不推荐】 $arrField=array_map(function($item){ return$item['age']; },$users); //利用array_mutisort来进行年龄从大到小排序 $arrSort=array_multisort($arrField,SORT_DESC,$users);
//闭包实现计数器 functioncounts(){ $a=1; //闭包,引用变量$a returnfunction()use(&$a){ return$a++; }; } $countFunc=counts(); echo$countFunc();//1 echo$countFunc();//2 echo$countFunc();//3 echo$countFunc();//4
关于使用php怎么实现函数式编程就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
目录
推荐阅读
-
php字符串增加1如何实现
php字符串增加1如何实现这篇“php字符串增加1如何实现”文章的...
-
php如何判断字符串是否有中文
-
php如何实现字符串去掉头尾
-
php字符串的组成是什么
php字符串的组成是什么这篇文章主要讲解了“php字符串的组成是什...
-
php如何让Swoole/Pool进程池实现Redis持久连接
php如何让Swoole/Pool进程池实现Redis持久连接本篇...
-
php字符串长度不一致如何解决
-
php时区不正确如何解决
-
php+fread()乱码如何解决
php+fread()乱码如何解决本篇内容介绍了“php+frea...
-
php explode报错如何解决
-
linux Centos如何安装PHP7
linuxCentos如何安装PHP7今天小编给大家分享一下li...
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~