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系统流量分析的程序
Oct 09 PHP
谈谈PHP语法(5)
Oct 09 PHP
PHP 身份验证方面的函数
Oct 11 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
PHP基本语法总结
Sep 06 PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
PHP实现文件上传后台处理脚本
Mar 04 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自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
测试php函数的方法
2013/11/13 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
javascript 模拟点击广告
2010/01/02 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
Python正则捕获操作示例
2017/08/19 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
利用nohup来开启python文件的方法
2019/01/14 Python
Django学习之文件上传与下载
2019/10/06 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
python绘制汉诺塔
2021/03/01 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
期终自我鉴定
2014/02/17 职场文书
单位在职证明书
2014/09/11 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
认识实习感想
2015/08/10 职场文书
python实现简单区块链结构
2021/04/25 Python
pytorch Dropout过拟合的操作
2021/05/27 Python
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server