php 笛卡尔积的实现
<?php
$arr = array(array(1,3,4,5),array(3,5,7,9),array(76,6,1,0));
/**
** 实现二维数组的笛卡尔积组合
** $arr 要进行笛卡尔积的二维数组
** $str 最终实现的笛卡尔积组合,可不写
** @return array
**/
function cartesian($arr,$str = array()){//去除第一个元素$first = array_shift($arr);//判断是否是第一次进行拼接if(count($str) > 1) {foreach ($str as $k => $val) {foreach ($first as $key => $value) {//最终实现的格式 1,3,76//可根据具体需求进行变更$str2[] = $val.','.$value;}}}else{foreach ($first as $key => $value) {//最终实现的格式 1,3,76//可根据具体需求进行变更$str2[] = $value;}}//递归进行拼接if(count($arr) > 0){$str2 = cartesian($arr,$str2);}//返回最终笛卡尔积return $str2;
}$cartesian_product = cartesian($arr);
print_r($cartesian_product);
?>
最终输出格式
Array
([0] => 1,3,76[1] => 1,3,6[2] => 1,3,1[3] => 1,3,0[4] => 1,5,76[5] => 1,5,6[6] => 1,5,1[7] => 1,5,0[8] => 1,7,76[9] => 1,7,6[10] => 1,7,1[11] => 1,7,0[12] => 1,9,76[13] => 1,9,6[14] => 1,9,1[15] => 1,9,0[16] => 3,3,76[17] => 3,3,6[18] => 3,3,1[19] => 3,3,0[20] => 3,5,76[21] => 3,5,6[22] => 3,5,1[23] => 3,5,0[24] => 3,7,76[25] => 3,7,6[26] => 3,7,1[27] => 3,7,0[28] => 3,9,76[29] => 3,9,6[30] => 3,9,1[31] => 3,9,0[32] => 4,3,76[33] => 4,3,6[34] => 4,3,1[35] => 4,3,0[36] => 4,5,76[37] => 4,5,6[38] => 4,5,1[39] => 4,5,0[40] => 4,7,76[41] => 4,7,6[42] => 4,7,1[43] => 4,7,0[44] => 4,9,76[45] => 4,9,6[46] => 4,9,1[47] => 4,9,0[48] => 5,3,76[49] => 5,3,6[50] => 5,3,1[51] => 5,3,0[52] => 5,5,76[53] => 5,5,6[54] => 5,5,1[55] => 5,5,0[56] => 5,7,76[57] => 5,7,6[58] => 5,7,1[59] => 5,7,0[60] => 5,9,76[61] => 5,9,6[62] => 5,9,1[63] => 5,9,0
)
php 笛卡尔积的实现相关推荐
- 笛卡尔积 php,PHP自定义函数生成笛卡尔积
"; print_r(combineDika($color, $size, $local)); /** * 所有数组的笛卡尔积 * * @param unknown_type $data * ...
- php处理不确定笛卡尔积,PHP笛卡尔积实现算法示例
本文实例讲述了PHP笛卡尔积实现算法.分享给大家供大家参考,具体如下:<?php $arr = array(array(1,3,4,5),array(3,5,7,9),array(76,6,1, ...
- sql join on 多表连接_SQL 多表查询-交叉连接(笛卡尔积)
交叉连接(笛卡尔积)返回被连接的两个表所有数据行的笛卡尔积,返回结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数. 简单解释一下笛卡尔积 设A,B为集合,用 ...
- python 笛卡尔积,排列,组合
一.[问题] 目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分开成为两个列表: list1 = ['a', 'b'] list2 = ['c', 'd ...
- mysql 获取当月每一天_mysql获取从某个时间到今天的每一天的日期,以及笛卡尔积...
1.要得到从指定日期到今天的每一天的日期 select date_format(assigned_date,'%Y-%m-%d') assigned_date from (select adddate ...
- SQL 交集 差集 并集 笛卡尔积 应用实例
一. 交集 Join 1.inner join 其处理结果与等值/自然连接相同 mssql : -- mssql 中 inner join 连接需要 on Connection条件 否则会报错, ...
- 集合与集合取笛卡尔积
public static void run(List<List<String>> dimvalue, List<String> result, int layer ...
- 11、CROSS JOIN:交叉连接(笛卡尔积)
前面所讲的查询语句都是针对一个表的,但是在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询.多表查询就是同时查询两个或两个以上的表. 在 MySQL 中,多表查询主要有交叉连接 ...
- python解包操作_Python编程使用*解包和itertools.product()求笛卡尔积的方法
本文实例讲述了Python编程使用*解包和itertools.product()求笛卡尔积的方法.分享给大家供大家参考,具体如下: [问题] 目前有一字符串s = "['a', 'b'],[ ...
- Oracle学习:分组数据(group by)与笛卡尔积
一.分组数据 基本格式: select -, 分组函数 from emp where - group by - (1) 统计各个部门的平均工资 select deptno, avg(sal) from ...
最新文章
- php文本域输出_PHP转换文本框内容为HTML格式的方法
- [转]毕业五年决定你的命运-----值得所有不甘平庸的人看看
- 网络流题目详讲+题单(提高版)(持续更新中......)
- HTML块,含样式的标签
- python paramiko使用_python paramiko 模块使用方法
- devops_您无法购买DevOps
- 随机游走问题的神奇应用(三)
- 清空表与删除表mysql
- memcached群集
- Atitit oil painting article list sumup s55 C:\Users\Administrator\Desktop\油画技术资料包\Atitit Atitit 图像
- Oracle with..as使用方法
- 超图软件 linux gis软件,超图(GIS)软件详细功能介绍.doc
- 企业开展自媒体推广,重点是什么?
- Java定时任务与分布式定时任务
- Java串口通信(RXTX)
- ThreeJS的性能优化方面
- MindManager模板百度云下载分享教程
- 实践《如何使用Seata保证Dubbo微服务间的一致性》
- 第一个Springboot程序
- Autolayout第三方库Masonry的入门与实践