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中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 PHP
php函数实现判断是否移动端访问
Mar 03 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
基于PHP实现通过照片获取ip地址
Apr 26 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
PHP重载基础知识回顾
Sep 10 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
php $_ENV为空的原因分析
2009/06/01 PHP
学习php分页代码实例
2013/10/24 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
jQuery过滤选择器用法分析
2015/02/10 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
新手简单了解vue
2019/05/29 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
详解python的ORM中Pony用法
2018/02/09 Python
python放大图片和画方格实现算法
2018/03/30 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
Python内置异常类型全面汇总
2020/05/28 Python
浅析Python的命名空间与作用域
2020/11/25 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
求职简历自荐信
2013/10/20 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
大足石刻导游词
2015/02/02 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
《植树问题》教学反思
2016/03/03 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL