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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
实用函数5
Nov 08 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
ucenter通信原理分析
Jan 09 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 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连接Oracle数据库
2006/10/09 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
Vue 组件封装 并使用 NPM 发布的教程
2018/09/30 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
Python subprocess库的使用详解
2018/10/26 Python
详解django自定义中间件处理
2018/11/21 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
通过自学python能找到工作吗
2020/06/21 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
输入N,打印N*N矩阵
2012/02/20 面试题
大学生创业计划书的用途
2014/01/08 职场文书
小学生手册家长评语
2014/04/16 职场文书
亲属关系公证书样本
2015/01/23 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python