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

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP笛卡尔积实现算法示例

    本文实例讲述了PHP笛卡尔积实现算法。分享给大家供大家参考,具体如下:

    ?php
    $arr = array(array(1,3,4,5),array(3,5,7,9),array(76,6,1,0));
    /**
    ** 实现二维数组的笛卡尔积组合
    ** $arr 要进行笛卡尔积的二维数组
    ** $str 最终实现的笛卡尔积组合,可不写
    ** @return array
    **/
    function cartesian($arr,$str = array()){
      //去除第一个元素
      $first = array_shift($arr);
      //判断是否是第一次进行拼接
      if(count($str) > 1) {
        foreach ($str as $k => $val) {
          foreach ($first as $key => $value) {
            //最终实现的格式 1,3,76
            //可根据具体需求进行变更
            $str2[] = $val.','.$value;
          }
        }
      }else{
        foreach ($first as $key => $value) {
          //最终实现的格式 1,3,76
          //可根据具体需求进行变更
          $str2[] = $value;
        }
      }
      //递归进行拼接
      if(count($arr) > 0){
        $str2 = cartesian($arr,$str2);
      }
      //返回最终笛卡尔积
      return $str2;
    }
    $cartesian_product = cartesian($arr);
    print_r($cartesian_product);
    ?>
    
    

    最终输出格式

    Array
    (
        [0] => 1,3,76
        [1] => 1,3,6
        [2] => 1,3,1
        [3] => 1,3,0
        [4] => 1,5,76
        [5] => 1,5,6
        [6] => 1,5,1
        [7] => 1,5,0
        [8] => 1,7,76
        [9] => 1,7,6
        [10] => 1,7,1
        [11] => 1,7,0
        [12] => 1,9,76
        [13] => 1,9,6
        [14] => 1,9,1
        [15] => 1,9,0
        [16] => 3,3,76
        [17] => 3,3,6
        [18] => 3,3,1
        [19] => 3,3,0
        [20] => 3,5,76
        [21] => 3,5,6
        [22] => 3,5,1
        [23] => 3,5,0
        [24] => 3,7,76
        [25] => 3,7,6
        [26] => 3,7,1
        [27] => 3,7,0
        [28] => 3,9,76
        [29] => 3,9,6
        [30] => 3,9,1
        [31] => 3,9,0
        [32] => 4,3,76
        [33] => 4,3,6
        [34] => 4,3,1
        [35] => 4,3,0
        [36] => 4,5,76
        [37] => 4,5,6
        [38] => 4,5,1
        [39] => 4,5,0
        [40] => 4,7,76
        [41] => 4,7,6
        [42] => 4,7,1
        [43] => 4,7,0
        [44] => 4,9,76
        [45] => 4,9,6
        [46] => 4,9,1
        [47] => 4,9,0
        [48] => 5,3,76
        [49] => 5,3,6
        [50] => 5,3,1
        [51] => 5,3,0
        [52] => 5,5,76
        [53] => 5,5,6
        [54] => 5,5,1
        [55] => 5,5,0
        [56] => 5,7,76
        [57] => 5,7,6
        [58] => 5,7,1
        [59] => 5,7,0
        [60] => 5,9,76
        [61] => 5,9,6
        [62] => 5,9,1
        [63] => 5,9,0
    )

    小编这里参考前面一篇《JavaScript笛卡尔积超简单实现算法》,给出一个php计算笛卡尔积的超简单算法示例如下:

    ?php
    function cartesian($arr1,$arr2){
      $relarr = array();
      foreach($arr1 as $v1){
        foreach($arr2 as $v2){
          array_push($relarr,$v1.",".$v2);
        }
      }
      return $relarr;
    }
    //用法示例
    $a = array('1','2','3');
    $b = array('a','b',c);
    print_r(cartesian($a,$b));
    ?>
    
    

    运行结果:

    Array
    (
        [0] => 1,a
        [1] => 1,b
        [2] => 1,c
        [3] => 2,a
        [4] => 2,b
        [5] => 2,c
        [6] => 3,a
        [7] => 3,b
        [8] => 3,c
    )

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》及《php程序设计算法总结》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP实现笛卡尔积算法的实例讲解
    • PHP实现数组的笛卡尔积运算示例
    • PHP基于自定义函数生成笛卡尔积的方法示例
    • php计算多个集合的笛卡尔积实例详解
    • PHP基于进程控制函数实现多线程
    • PHP如何防止用户重复提交表单
    • Nginx+php配置文件及原理解析
    • thinkphp诸多限制条件下如何getshell详解
    • PHP笛卡尔积实现原理及代码实例
    上一篇:作为PHP程序员你要知道的另外一种日志
    下一篇:ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
  • 相关文章
  • 

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

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

    PHP笛卡尔积实现算法示例 PHP,笛卡尔,积,实现,算法,