php实现笛卡尔积
PHP 实现 笛卡尔
2023-06-13 09:12:47 时间
大家好,又见面了,我是你们的朋友全栈君。
问题:有那么一个数组
$arr = array(
array(1, 2, 3),
array('中','国','人'),
array('a','b','c')
);
要求使用PHP语言实现计算该数组的笛卡尔积。
实现过程如下所示:
<?php
$arr = array(
array(1, 2, 3),
array('中','国','人'),
array('a','b','c')
);
function diker($arr) {
$result = array_shift($arr);
while($curArr = array_shift($arr)) {
$lastArr = $result;
$result = array();
foreach($lastArr as $lastVal) {
if(!is_array($lastVal)) {
$lastVal = array($lastVal);
}
foreach($curArr as $curVal) {
if(!is_array($curVal)) {
$curVal = array($curVal);
}
$result[] = array_merge_recursive($lastVal, $curVal);
}
}
}
return $result;
}
$dkRes = diker($arr);
if (is_array($dkRes)) {
foreach ($dkRes as $val) {
print_r($val);
echo "<br/>";
}
} else {
var_dump($dkRes);
}
运行结果如下所示:
Array ( [0] => 1 [1] => 中 [2] => a )
Array ( [0] => 1 [1] => 中 [2] => b )
Array ( [0] => 1 [1] => 中 [2] => c )
Array ( [0] => 1 [1] => 国 [2] => a )
Array ( [0] => 1 [1] => 国 [2] => b )
Array ( [0] => 1 [1] => 国 [2] => c )
Array ( [0] => 1 [1] => 人 [2] => a )
Array ( [0] => 1 [1] => 人 [2] => b )
Array ( [0] => 1 [1] => 人 [2] => c )
Array ( [0] => 2 [1] => 中 [2] => a )
Array ( [0] => 2 [1] => 中 [2] => b )
Array ( [0] => 2 [1] => 中 [2] => c )
Array ( [0] => 2 [1] => 国 [2] => a )
Array ( [0] => 2 [1] => 国 [2] => b )
Array ( [0] => 2 [1] => 国 [2] => c )
Array ( [0] => 2 [1] => 人 [2] => a )
Array ( [0] => 2 [1] => 人 [2] => b )
Array ( [0] => 2 [1] => 人 [2] => c )
Array ( [0] => 3 [1] => 中 [2] => a )
Array ( [0] => 3 [1] => 中 [2] => b )
Array ( [0] => 3 [1] => 中 [2] => c )
Array ( [0] => 3 [1] => 国 [2] => a )
Array ( [0] => 3 [1] => 国 [2] => b )
Array ( [0] => 3 [1] => 国 [2] => c )
Array ( [0] => 3 [1] => 人 [2] => a )
Array ( [0] => 3 [1] => 人 [2] => b )
Array ( [0] => 3 [1] => 人 [2] => c )
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157653.html原文链接:https://javaforall.cn
相关文章
- 宝塔新建php文件实现百度自动推送
- PHP操作MySQL数据库:实现快速连接(php连接数据库mysql)
- 开发环境配置Linux实现PHP开发环境(linux配置php)
- 深入学习:PHP如何配置MySQL(php如何配置mysql)
- 使用Linux运行PHP脚本:完美实现(linux执行php脚本)
- PHP与MySQL互动:开发动态网站的关键(php与mysql交互)
- PHP实现Redis监控的简便方法(php监控redis)
- 重启Linux服务器,以使PHP生效(php重启linux)
- PHP实现从MSSQL中获取数据的技巧 (php返回mssql值)
- 用PHP访问本地MSSQL数据库的实现方法(php访问本地mssql)
- PHP连接MSSQL实现数据库操作(php用mssql)
- 用PHP从MSSQL读取数据表列表(php查询mssql列表)
- PHP环境下使用Redis实现单例模式(redisphp单例)
- PHP开启Redis扩展:实现网站快速加载(php开启redis扩展)
- 利用Memcached在php下实现session机制替换PHP的原生session支持
- php数组的指针操作实现代码
- 利用PHP实现图片等比例放大和缩小的方法详解
- PHP中使用协同程序实现合作多任务
- php实现查询百度google收录情况(示例代码)
- php实现监听事件
- php实现aes加密类分享
- php实现singleton()单例模式实例
- PHP实现下载断点续传的方法
- 配置php.ini实现PHP文件上传功能
- php+xml实现在线英文词典查询的方法
- php与flashas3socket通信传送文件实现代码