PHP基于自定义函数生成笛卡尔积的方法示例


Posted in PHP onSeptember 30, 2017

本文实例讲述了PHP基于自定义函数生成笛卡尔积的方法。分享给大家供大家参考,具体如下:

<?php
  $color = array('red', 'green');
  $size = array(39, 40, 41);
  $local = array('beijing', 'shanghai');
  echo "<pre>";
  print_r(combineDika($color, $size, $local));
  /**
   * 所有数组的笛卡尔积
   *
   * @param unknown_type $data
   */
  function combineDika() {
    $data = func_get_args();
    $cnt = count($data);
    $result = array();
    foreach($data[0] as $item) {
      $result[] = array($item);
    }
    for($i = 1; $i < $cnt; $i++) {
      $result = combineArray($result,$data[$i]);
    }
    return $result;
  }
  /**
   * 两个数组的笛卡尔积
   *
   * @param unknown_type $arr1
   * @param unknown_type $arr2
   */
  function combineArray($arr1,$arr2) {
    $result = array();
    foreach ($arr1 as $item1) {
      foreach ($arr2 as $item2) {
        $temp = $item1;
        $temp[] = $item2;
        $result[] = $temp;
      }
    }
    return $result;
  }
?>

运行结果:

Array
(
  [0] => Array
    (
      [0] => red
      [1] => 39
      [2] => beijing
    )
  [1] => Array
    (
      [0] => red
      [1] => 39
      [2] => shanghai
    )
  [2] => Array
    (
      [0] => red
      [1] => 40
      [2] => beijing
    )
  [3] => Array
    (
      [0] => red
      [1] => 40
      [2] => shanghai
    )
  [4] => Array
    (
      [0] => red
      [1] => 41
      [2] => beijing
    )
  [5] => Array
    (
      [0] => red
      [1] => 41
      [2] => shanghai
    )
  [6] => Array
    (
      [0] => green
      [1] => 39
      [2] => beijing
    )
  [7] => Array
    (
      [0] => green
      [1] => 39
      [2] => shanghai
    )
  [8] => Array
    (
      [0] => green
      [1] => 40
      [2] => beijing
    )
  [9] => Array
    (
      [0] => green
      [1] => 40
      [2] => shanghai
    )
  [10] => Array
    (
      [0] => green
      [1] => 41
      [2] => beijing
    )
  [11] => Array
    (
      [0] => green
      [1] => 41
      [2] => shanghai
    )
)

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.3water.com/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.3water.com/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.3water.com/jisuanqi/jsq

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

PHP 相关文章推荐
一个PHP操作Access类(PHP+ODBC+Access)
Jan 02 PHP
PHP实现Socket服务器的代码
Apr 03 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
php使用curl下载指定大小的文件实例代码
Sep 30 #PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 #PHP
PHP 获取 ping 时间的实现方法
Sep 29 #PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 #PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 #PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 #PHP
WHOOPS PHP调试库的使用
Sep 29 #PHP
You might like
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
jQuery返回定位插件详解
2017/05/15 jQuery
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python简易版停车管理系统
2019/08/12 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
介绍下Java中==和equals的区别
2013/09/01 面试题
标准自荐信范文
2014/01/29 职场文书
妈妈活动方案
2014/08/15 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
单身申明具结书
2015/02/26 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
大学生实习推荐信
2015/03/27 职场文书
大国崛起日本观后感
2015/06/02 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android