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获取网页内容方法总结
Dec 04 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
php一行代码获取文件后缀名实例分析
Nov 12 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
php实现图片等比例缩放代码
Jul 23 PHP
PHP框架性能测试报告
May 08 PHP
laravel配置Redis多个库的实现方法
Apr 10 PHP
php项目中类的自动加载实例讲解
Sep 12 PHP
php报错502badgateway解决方法
Oct 11 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
建立文件交换功能的脚本(二)
2006/10/09 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
基于jQuery试卷自动排版系统
2010/07/18 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
解析Python3中的Import
2019/10/13 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫