php实现笛卡尔积

php实现笛卡尔积问题:有那么一个数组$arr=array(array(1,2,3),array(‘中’,’国’,’人’),array(‘a’,’b’,’c’));要求使用PHP语言实现计算该数组的笛卡尔积。实现过程如下所示:<?php$arr=array(array(1,2,3),array(‘…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

问题:有那么一个数组

$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.net/157653.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux重启网卡的命令行,linux系统怎么重启网卡?linux重启网卡的三种教程

    linux重启网卡的命令行,linux系统怎么重启网卡?linux重启网卡的三种教程在实际工作中,经常会遇到Linux系统进行重启网卡的操作。在这里整理一下,进行多种方法的网卡重启。一、servicenetworkrestart1、首先用CRT工具连接到Linux命令行界面。或者进入操作系统界面,选择终端输入。2、如果我们对所有的网卡进行重启操作。可以尝试输入:servicenetworkrestart命令进行操作。3、样就完成了用servicenetworkr…

    2022年9月22日
    4
  • matlab保存图片去掉白边_matlab输出图像不留白

    matlab保存图片去掉白边_matlab输出图像不留白MATLAB保存图片去白边MATLAB保存图片的时候经常有白边,此法可以去除四周的白边法1:imwrite(x,’name’,’format’)经过测试非常好用eg:    name_mask=[currentpath,’\data_prepare_fig\’ name’_mask.tif’];  imwrite(BW3_prepare,name_mask);法二:imshow…

    2025年11月5日
    7
  • 激光slam_高德导航术语理解

    激光slam_高德导航术语理解ROS激光SLAM导航理解注:最近学习ROS的导航,需要理清ROS的SLAM、环境感知(costmap)、与导航算法。为防止自己忘记,将觉得有价值的内容摘抄于此。文章目录ROS激光SLAM导航理解激光SLAM基本原理基本原理1、占据栅格地图基本原理2、导航基本原理SLAM与导航系统框架:激光SLAM系统框架建图系统框架导航系统框架`move_base`中的使用运用`plugins`Cost…

    2022年8月23日
    12
  • java GC算法「建议收藏」

    java GC算法「建议收藏」一般来说,程序使用内存的方式遵循先向操作系统申请一块内存,使用内存,使用完毕之后释放内存归还给操作系统。然而在传统的C/C++等要求显式释放内存的编程语言中,记得在合适的时候释放内存是一个很有难度的工作,因此Java等编程语言都提供了基于垃圾回收算法的内存管理机制:垃圾内存回收算法常见的垃圾回收算法有引用计数法(ReferenceCounting)、标注并清理(MarkandSweep…

    2022年6月17日
    29
  • 免费申请国外免费域名超详细教程

    免费申请国外免费域名超详细教程1.首先申请免费域名网站:https://my.freenom.com/domains.php2.填入域名,这里我们以xcflag为列(尽量选择复杂一点的或者五个字母以上的域名,因为简单的有些域名是需要收费的),点击检查可用性。3.可以看到很多免费的域名(用的谷歌翻译插件,翻译有时候不是很准确,free翻译过来应该是免费而不是自由,之后会写一些关于谷歌插件的笔记,详细讲解)4.我们选择xcflag.tk点击立即获取,稍等一会点击购物车查看绿色按钮5.默认三个月试用,这里下拉框我们选择十二个月

    2022年6月30日
    65
  • 什么是Servlet容器?

    什么是Servlet容器?什么是Servlet容器?

    2022年4月23日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号