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 相关文章推荐
zend api扩展的php对象的autoload工具
Apr 18 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
PHP实现懒加载的方法
Mar 07 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
php技巧小结【推荐】
Jan 19 PHP
利用php-cli和任务计划实现刷新token功能的方法
May 03 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
总结PHP内存释放以及垃圾回收
Mar 29 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 方便水印和缩略图的图形类
2009/05/21 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
python实现狄克斯特拉算法
2019/01/17 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
三个python爬虫项目实例代码
2019/12/28 Python
Python使用Matlab命令过程解析
2020/06/04 Python
毕业生自荐信格式
2014/03/07 职场文书
公立医院改革实施方案
2014/03/14 职场文书
动员大会主持词
2014/03/20 职场文书
杜甫草堂导游词
2015/02/03 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书