博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 笛卡尔积
阅读量:7044 次
发布时间:2019-06-28

本文共 735 字,大约阅读时间需要 2 分钟。

  hot3.png

function Descartes(){    $t = func_get_args();    if (func_num_args() == 1) {        $t0 = $t[0];        return call_user_func_array(__FUNCTION__, $t0);    }    $a = array_shift($t);    if (!is_array($a)) $a = array($a);    $a = array_chunk($a, 1);    do {        $r = array();        $b = array_shift($t);        if (!is_array($b)) $b = array($b);        foreach ($a as $p)            foreach (array_chunk($b, 1) as $q)                $r[] = array_merge($p, $q);        $a = $r;    } while ($t);    return $r;}

函数说明:

func_get_args    返回一个包含函数参数列表的数组

func_num_args  返回参数传递给函数的数量

call_user_func_array 调用回调函数,并把一个数组参数作为回调函数的参数

array_shift 将数组开头的单元移出数组

array_chunk  将一个数组分割成多个

array_merge 合并一个或多个数组

 

 

 

 

 

 

 

转载于:https://my.oschina.net/yunlw/blog/759859

你可能感兴趣的文章
Mac下好用的批量文件扩展名修改工具
查看>>
配置gitlab环境实现代码管理及Web Hook测试和ldap认证
查看>>
几副工作对联@Alibaba
查看>>
五步教你使用JCS快速搭建缓存环境
查看>>
XenApp_XenDesktop_7.6实战篇之四:AD、DNS服务器高级配置
查看>>
利用IPSec使用策略和规则提升网络安全性
查看>>
虚拟资源引流变现
查看>>
015 有趣的查询条件
查看>>
Delphi下使用指针的简单总结
查看>>
iBatis2配置
查看>>
摩卡端到端监控管理(Mocha E2E)解决方案
查看>>
YUM安装LNMP架构
查看>>
ISA Server 2006 安全保障指南
查看>>
iOS APP提交上架最新流程(转)
查看>>
电力基本知识
查看>>
git合并历史提交
查看>>
使用glPushMatrix和glPopMatrix的原因
查看>>
Android 开发之旅:又见Hello World!
查看>>
c++ 中__declspec 的用法
查看>>
HTTP status code
查看>>