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常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。