笛卡尔积 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() 构建二维数组不难, ...
最新文章
- java中参数存储_Java中函数参数传递和数据存储
- mano安全_爱立信:O-RAN存在的安全风险
- XJOJ - 选信封(离散化+增广路)
- ApiBoot - ApiBoot Swagger 使用文档
- 前端程序员:月薪 5K 到 5 万
- 【水果识别】基于matlab GUI苹果质量检测及分级系统【含Matlab源码 519期】
- idea在mac版怎么配置svn_Mac安装svn客户端
- win10电脑性能测试软件,win10系统测试计算机性能的图文方法
- android手势解锁代码,纯android代码实现九宫格手势密码
- linux 剪贴板_如何在Linux上使用剪贴板管理器
- 戴尔电脑外放有声音插入耳机还是外放解决方法
- gcc编译优化-O0 -O1 -O2 -O3 -OS解析
- npm init vite@latest 构建项目报错解决办法
- linux中dd命令写入数据,Linux中dd命令的用法
- c++闭区间内的素数
- Nature:每两个月注射一次卡波替格拉韦可以让大多数人免受艾滋病毒
- python关键字参数必须位于位置参数之前_python函数中的参数(关键字参数,默认参数,位置参数,不定长参数)...
- 酒店管理系统-毕业设计
- day2-----k8s集群管理常用知识点(1)
- Oracle存储过程实现X日均线计算