• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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){
      return array(
        '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 的内部实现方式
    function array_reduce($data, $callback, $initial) {
      foreach ($data as $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);
    
    
    //闭包实现计数器
    function counts() {
      $a = 1;
      // 闭包,引用变量$a
      return function() 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程序设计有所帮助。

    您可能感兴趣的文章:
    • JDK12的新特性之teeing collectors
    • 浅析JDK12的五大重要新特性(推荐)
    • JDK12的新特性之CompactNumberFormat详解
    • 在windows环境下安装jdk8、jdk9、jdk11、jdk12并自由切换
    • JDK14之jpackage打包命令的使用
    • Python中的函数式编程:不可变的数据结构
    • SpringBoot2使用WebFlux函数式编程的方法
    • JDK都出到14了,你有什么理由不会函数式编程(推荐)
    上一篇:PHP goto语句用法实例
    下一篇:php tpl模板引擎定义与使用示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php函数式编程简单示例 php,函,数式,编程,简单,示例,