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 相关文章推荐
JAVA/JSP学习系列之七
Oct 09 PHP
session在PHP大型web应用中的使用
Jun 25 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
thinkphp模板继承实例简述
Nov 26 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
Aug 07 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 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文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
express如何使用session与cookie的方法
2018/01/30 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python编程中的反模式实例分析
2014/12/08 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
python交换两个变量的值方法
2019/01/12 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
String和StringBuffer的区别
2015/08/13 面试题
你所在的项目是如何确定版本号的
2015/12/28 面试题
编辑个人求职信范文
2013/09/21 职场文书
升旗仪式主持词
2014/03/19 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
精神病医院见习报告
2014/11/03 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP