笛卡尔积 php,PHP 笛卡尔积
笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。
简单的说就是两个集合相乘的结果。
具体的定义去看看有关代数系的书的定义。
直观的说就是
集合A{a1,a2,a3} 集合B{b1,b2}
他们的 笛卡尔积 是 A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}
任意两个元素结合在一起
/**
* php 计算多个集合的笛卡尔积
* Date: 2017-01-10
* Author: fdipzone
* Ver: 1.0
*
* Func
* CartesianProduct 计算多个集合的笛卡尔积
*/
/**
* 计算多个集合的笛卡尔积
* @param Array $sets 集合数组
* @return Array
*/
function CartesianProduct($sets){
// 保存结果
$result = array();
// 循环遍历集合数据
for($i=0,$count=count($sets); $i
// 初始化
if($i==0){
$result = $sets[$i];
}
// 保存临时数据
$tmp = array();
// 结果与下一个集合计算笛卡尔积
foreach($result as $res){
foreach($sets[$i+1] as $set){
$tmp[] = $res.$set;
}
}
// 将笛卡尔积写入结果
$result = $tmp;
}
return $result;
}
// 定义集合
$sets = array(
array('白色','黑色','红色'),
array('透气','防滑'),
array('37码','38码','39码'),
array('男款','女款')
);
$result = CartesianProduct($sets);
print_r($result);
输出:
Array
(
[0] => 白色透气37码男款
[1] => 白色透气37码女款
[2] => 白色透气38码男款
[3] => 白色透气38码女款
[4] => 白色透气39码男款
[5] => 白色透气39码女款
[6] => 白色防滑37码男款
[7] => 白色防滑37码女款
[8] => 白色防滑38码男款
[9] => 白色防滑38码女款
[10] => 白色防滑39码男款
[11] => 白色防滑39码女款
[12] => 黑色透气37码男款
[13] => 黑色透气37码女款
[14] => 黑色透气38码男款
[15] => 黑色透气38码女款
[16] => 黑色透气39码男款
[17] => 黑色透气39码女款
[18] => 黑色防滑37码男款
[19] => 黑色防滑37码女款
[20] => 黑色防滑38码男款
[21] => 黑色防滑38码女款
[22] => 黑色防滑39码男款
[23] => 黑色防滑39码女款
[24] => 红色透气37码男款
[25] => 红色透气37码女款
[26] => 红色透气38码男款
[27] => 红色透气38码女款
[28] => 红色透气39码男款
[29] => 红色透气39码女款
[30] => 红色防滑37码男款
[31] => 红色防滑37码女款
[32] => 红色防滑38码男款
[33] => 红色防滑38码女款
[34] => 红色防滑39码男款
[35] => 红色防滑39码女款
)
笛卡尔积 php,PHP 笛卡尔积相关推荐
- mysql 笛卡尔积_Mysql(笛卡尔积、等值连接、自然连接、外连接)
1.笛卡尔积 笛卡尔积的元素是元组,关系A和B的笛卡尔积可以记为(AXB),如果A为a目,B为b目,那么A和B的笛卡尔积为(a+b)列.(a*b)行的元组集合. (1)学生表和分数表中的信息: 学生表 ...
- 笛卡尔积 php,PHP笛卡尔积实现算法示例
本文实例讲述了PHP笛卡尔积实现算法.分享给大家供大家参考,具体如下: $arr = array(array(1,3,4,5),array(3,5,7,9),array(76,6,1,0)); /** ...
- 用java实现笛卡尔积_Java实现笛卡尔积
public class Singleton { private static Singleton intance; private Singleton() {} public static Sing ...
- java笛卡尔积算法_Java 笛卡尔积算法的简单实现
笛卡尔积算法的Java实现: (1)循环内,每次只有一列向下移一个单元格,就是CounterIndex指向的那列. (2)如果该列到尾部了,则这列index重置为0,而CounterIndex则指向前 ...
- oracle的笛卡尔积的用处,笛卡尔积的解释和作用
一:笛卡尔积的解释 例 给出二个域: 假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}..类似的例子有, ...
- 笛卡尔积 mysql_DB中笛卡尔积的用途
DB中笛卡尔积的作用 学习过数据库和SQL知识的程序员都应该知道笛卡尔积是什么,就是将两张表中数据进行组合然后返回.我一直觉得笛卡尔积没啥鸟用,只是学术上的东西,直到通宵加班时,遇到一个祖传系统的需求 ...
- 11、CROSS JOIN:交叉连接(笛卡尔积)
前面所讲的查询语句都是针对一个表的,但是在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询.多表查询就是同时查询两个或两个以上的表. 在 MySQL 中,多表查询主要有交叉连接 ...
- 离散数学知识点总结(10)“关系” 知识的总结 <1>:关系的基础概念 —— 有序 n 元组,集合的笛卡尔积,集合的关系(二元关系)的定义,关系的集合运算, 关系的基本性质
文章目录 有序 n 元组和集合的笛卡尔积 序偶关系 有序二元组 序偶相等 有序三元组 有序n元组 有序 n 元组相等 集合的笛卡尔积 集合笛卡尔积的性质 集合的二元关系及其表示方法 相关 关系的定义 ...
- 数据库的传统集合运算(并、差、交、笛卡尔积)和专门的关系运算(选择、投影、连接、除运算)
转载:https://blog.csdn.net/zgcr654321/article/details/82077809 正文如下: 各种运算符如下: 数据库中每行就是一个元组,每列就是一个属性. 数 ...
最新文章
- SQL Server 2008不能修改表的解决方法
- 打印Show Atend and Tell编码器的优化器
- linux 文件及目录结构体系
- jquery对radio的操作汇总
- 光伏市场抢装潮6月底前或重现
- Test live writer
- windows 提权 cve-2018-8897
- QtCreator 如何将开发的程序打包成exe
- 信息学奥赛C++语言:成绩等级
- Linux常用命令大全(归类)
- ES6学习之路10----Symbol
- 无法更新标识列 wechatid_天津塘沽企业标识标牌设计制作安装的过程
- PVE使用USB蓝牙直通配置
- Appium基础 — uiautomatorviewer定位工具
- 广东省推出居民身份电子凭证,忘带身份证也能住酒店了
- CSP报错运行错误?
- oracle提示ORA-00979: 不是 GROUP BY 表达式
- numpy、pandas操作
- 如何保障邮件内容安全
- Ubuntu使用心得