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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网络体系结构与网络协议

    网络体系结构与网络协议

    2021年9月15日
    37
  • ed2k链接网站

    ed2k链接网站 http://ed2k.shortypower.org/  查源站 http://donkey4u.com/   查源站 http://verycd.gdajie.com/ http://www.iverycd.com/ http://www.qvocd.org/ http://www.simplecd.me/ http://www.ed2kers.com/ http://www.icili….

    2022年7月15日
    17
  • Python如何将字符串分割成单个字符,并形成一个list?

    Python如何将字符串分割成单个字符,并形成一个list?一个字符串可以看做是一个list具体操作如下&gt;&gt;&gt;a="这是一段话"&gt;&gt;&gt;a[0]’这’&gt;&gt;&gt;list(a)[‘这’,’是’,’一’,’段’,’话’]&gt;&gt;&gt;forxina: print(x) 这是一段话&gt;&gt;&gt;所以

    2022年5月10日
    37
  • linux查看硬盘smart信息_检查中ctl是检查什么

    linux查看硬盘smart信息_检查中ctl是检查什么知识介绍SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等硬盘运行了几千小时后,很多内在的物理参数都会发生变化某一参数超过报警阈值,则说明硬盘接近损坏此时硬盘依然在工作,如果用户不理睬这个报警继续使用那么硬盘将变得非常不可靠,随时可能故障启用SMARTSMART是和主板BIOS上相应功能配合的要使用SMART,必须先进入到主板

    2022年10月8日
    0
  • windowsAPI之OpenProcessToken,AdjustTokenPrivileges 和LookupPrivilegeValue

    windowsAPI之OpenProcessToken,AdjustTokenPrivileges 和LookupPrivilegeValue这三个函数主要用来提升进程的权限1OpenProcessToken()函数:获取进程的令牌句柄OpenProcessToken的原型.BOOLWINAPIOpenProcessToken(__inHANDLEProcessHandle,__inDWORDDesiredAccess,__outPHA

    2022年6月25日
    26
  • u盘不显示容量打不开_u盘在电脑上显示但是打不开怎么办

    u盘不显示容量打不开_u盘在电脑上显示但是打不开怎么办JonTargaryen24872017-04-30如何解决移动硬盘/U盘无法打开并在电脑上显示为“本地磁盘”的问题qq_3259947986672018-11-23Toshiba8GU盘量产修复工具atlim32017-01-18u盘打开之后就只有一个快捷方式code_AC122812016-11-20联想8G移动U盘量产工具shaotingqiang2122011-12-13无法打开U盘中…

    2022年9月8日
    0

发表回复

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

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