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 相关文章推荐
通过文字传递创建的图形按钮
Oct 09 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
php之可变函数的实例详解
Sep 13 PHP
PHP实现的日历功能示例
Sep 01 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函数scandir排除特定目录
2014/06/12 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
JavaScript中的类数组对象介绍
2014/12/30 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
Python3基础之基本数据类型概述
2014/08/13 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
Python读写Excel文件方法介绍
2014/11/22 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
Python多线程实现同步的四种方式
2017/05/02 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
python中如何使用虚拟环境
2020/10/14 Python
个人充满哲理的自我评价
2014/02/20 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
金融保险专业求职信
2014/09/03 职场文书
理想国读书笔记
2015/06/25 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python