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


相关推荐

  • dos命令copy带空格的路径出现语法错误

    dos命令copy带空格的路径出现语法错误dos命令copy带空格的路径出现语法错误解决方案:把路径用双引号引起来。

    2022年7月18日
    16
  • python2021激活码【2021.10最新】

    (python2021激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsa…

    2022年3月27日
    118
  • 一个QQ空间的钓鱼盗号过程揭露,大家谨防上当[通俗易懂]

    一个QQ空间的钓鱼盗号过程揭露,大家谨防上当[通俗易懂]1.开端很久没有用过QQ空间了,今天突然QQ弹出一条消息,说我的一个好友留言中提到了我,但是我却也打不开这个链接。于是,我就去她的空间留言板查看。发现第一条留言,是一个二维码扫描之后,进入到一个网页,是标准的QQ空间登录页。这么敏感的信息,当然要慎之又慎!我们识别一下这个二维码,发现!他并不是腾讯的域名。如下http://gallatinboom.com/catfish/xxyy….

    2022年8月24日
    2
  • arp毒化攻击_清湿化毒膏

    arp毒化攻击_清湿化毒膏iptables-tnat-APOSTROUTING-oeth0-s10.122.33.0/24-jMASQUERADE把10.122.33.0/24的包伪装转发开启转发echo1>>/proc/sys/net/ipv4/ip_forwardcat/proc/sys/net/ipv4/ip_forwardarpspoof-ieth0-t目

    2022年9月27日
    0
  • JAVA(计算机编程语言)

    JAVA(计算机编程语言)走进JAVA//公共的类类名:要求与文件保持一致,每一个单词首字母大写publicclassHelloWorld{//类的开始 //公共的静态的没有返回值类型的主方法()->参数列表 publicstaticvoidmain(String[]args){//方法的开始 //系统输出打印()->内容””中的内容原封不动显示->字符串 System.out.println(“HelloWorld!!!”);//;结束语句

    2022年7月8日
    25

发表回复

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

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