笛卡尔积 php,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
)
小编这里参考前面一篇《JavaScript笛卡尔积超简单实现算法》,给出一个php计算笛卡尔积的超简单算法示例如下:
function cartesian($arr1,$arr2){
$relarr = array();
foreach($arr1 as $v1){
foreach($arr2 as $v2){
array_push($relarr,$v1.",".$v2);
}
}
return $relarr;
}
//用法示例
$a = array('1','2','3');
$b = array('a','b',c);
print_r(cartesian($a,$b));
?>
运行结果:
Array
(
[0] => 1,a
[1] => 1,b
[2] => 1,c
[3] => 2,a
[4] => 2,b
[5] => 2,c
[6] => 3,a
[7] => 3,b
[8] => 3,c
)
希望本文所述对大家PHP程序设计有所帮助。
笛卡尔积 php,PHP笛卡尔积实现算法示例相关推荐
- php处理不确定笛卡尔积,PHP笛卡尔积实现算法示例
本文实例讲述了PHP笛卡尔积实现算法.分享给大家供大家参考,具体如下:<?php $arr = array(array(1,3,4,5),array(3,5,7,9),array(76,6,1, ...
- php数据分析引擎,PHP数据分析引擎计算余弦相似度算法示例
php 的 PHP数据分析引擎计算余弦相似度算法示例 本文实例讲述了PHP数据分析引擎计算余弦相似度算法.分享给大家供大家参考,具体如下: 关于余弦相似度的相关介绍可参考百度百科: /** * 数据分 ...
- pythonopencv算法_python opencv之分水岭算法示例
本文介绍了python opencv之分水岭算法示例,分享给大家,具体如下: 目标 使用分水岭算法对基于标记的图像进行分割 使用函数cv2.watershed() 原理: 灰度图像可以被看成拓扑平面, ...
- 【数据挖掘】关联规则挖掘 Apriori 算法 ( Apriori 算法过程 | Apriori 算法示例 )
文章目录 一. Apriori 算法过程 二. Apriori 算法示例 参考博客 : [数据挖掘]关联规则挖掘 Apriori 算法 ( 关联规则简介 | 数据集 与 事物 Transaction ...
- pythonopencv算法_python opencv之SURF算法示例
本文介绍了python opencv之SURF算法示例,分享给大家,具体如下: 目标: SURF算法基础 opencv总SURF算法的使用 原理: 上节课使用了SIFT算法,当时这种算法效率不高,需要 ...
- QT学习笔记(十):通用算法示例
QT学习笔记(十):通用算法示例 std是C++标准库统一使用的命名空间(namespace)的名称,C++标准库中的名字全部都在std这个命名空间中,std也就是英文"standard&q ...
- python计算最大公约数函数_Python实现的求解最大公约数算法示例
本文实例讲述了Python实现的求解最大公约数算法.分享给大家供大家参考,具体如下: 使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式.其实,我写分解质因式程序的时候就是因为发现 ...
- em算法示例_带有示例HTML'em'标签
em算法示例 <em>标签 (<em> Tag) <em> tag in HTML is used to display the text in emphasize ...
- java 回溯_java 实现迷宫回溯算法示例详解
用一个7 x 7的矩形表示迷宫,0和1分别表示的是通路和障碍.通过设计编写程序找到蓝色小球达到蓝色旗子的路线 思路: 构建一个迷宫(用二维数组)实现找通路的方法findRoad() 构建二维数组不难, ...
最新文章
- 智能开发框架 JEECG 作者张代浩专访
- vue cli根据不同的环境打包
- [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx
- .Net/C# 与 J2EE/Java Web Service 互操作完整实例
- Python中import模块的两种模式
- okhttp_utils的使用以及与服务端springboot交互中遇到的问题
- web前端安全编码(模版篇)
- mc服务器出生地修改,《我的世界》MC出生地太坑爹怎么办?大神教你一个指令就搞定了!...
- GMTC 大前端时代前端监控的最佳实践 1
- 乐高百变工程旋转飞椅知识点_每日一个知识点:关于磁盘的一些事儿
- 听歌识曲java_homework_3
- IBM与红帽联手构建开源混合云环境
- mysql加begin报错,MySQL存储过程例子,不能在if else里面用begin end否则会报错Error Code:1064解决...
- 第三部分:Android 应用程序接口指南---第一节:应用程序组件---第一章1-1.Fragment...
- 火热报名|Apache Pulsar x KubeSphere 在线 Meetup 来袭
- 飞秋等级授权码_观点 | 谈谈网络安全等级保护与密码法
- 阿里云Win虚拟机挂载本地计算机硬盘
- 这些“新职业”到底好不好干?听听过来人怎么说
- Excel 2010 多个窗口独立同屏显示方法——修改注册表方法
- Python可视化34|matplotlib-多子图绘制(为所欲为版)
热门文章
- android gridview分页显示,GridView使用自带分页功能时分页方式及样式PagerStyle
- C/C++项目:编译最爱的童年回忆泡泡堂小游戏教程
- 《网页制作与网站建设从入门到精通》封面
- Excel报表公式值替换后,报错打开提示部分内容有问题, 是否尝试尽量恢复
- 【报告分享】 2020年中国医药产业互联网白皮书-艾瑞咨询 (附下载)
- C# FileSystemWatcher使用说明
- 两道有趣的逻辑推理题
- C#:实现所罗门校验算法(附完整源码)
- html右键菜单背景图片,右键菜单背景图片怎么添加
- 工业相机如何调整SDK枚举顺序或者打开顺序