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去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
php实例分享之二维数组排序
May 15 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
初识PHP中的Swoole
Apr 05 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
iOS10推送通知开发教程
Sep 19 PHP
php四种定界符详解
Feb 16 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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函数解决SQL injection
2006/12/09 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
前端性能优化建议
2020/09/17 Javascript
python实现RSA加密(解密)算法
2016/02/17 Python
详解Python核心对象类型字符串
2018/02/11 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Python argparse模块应用实例解析
2019/11/15 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
实习推荐信
2014/05/10 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android