火车头发布产品的时候,有颜色、尺码、性别等等产品属性,需要进行不重复的组合,变成不重复的数组

<?php
function comb($a){
$a = array_filter($a);
$out = array();
if (count($a) == 1) {
$r = array_shift($a);
foreach ($r as $v) $out[] = array($v);
return $out;
}
foreach ($a as $k => $v){
$b = $a;
unset($b[$k]);
$r = comb($b);
foreach ($v as $v1){
foreach ($r As $v2)
$out[] = array_merge(array($v1), $v2);
}
break;
}
return $out;
} $array1 = array(array('Red', 'Black', 'Yellow'),array('Boy','Girl'),array('S', 'M', 'L'));
$result = comb($array1);
print_r($result);
?>

返回的结果如下:

Array
(
[0] => Array
(
[0] => Red
[1] => Boy
[2] => S
) [1] => Array
(
[0] => Red
[1] => Boy
[2] => M
) [2] => Array
(
[0] => Red
[1] => Boy
[2] => L
) [3] => Array
(
[0] => Red
[1] => Girl
[2] => S
) [4] => Array
(
[0] => Red
[1] => Girl
[2] => M
) [5] => Array
(
[0] => Red
[1] => Girl
[2] => L
) [6] => Array
(
[0] => Black
[1] => Boy
[2] => S
) [7] => Array
(
[0] => Black
[1] => Boy
[2] => M
) [8] => Array
(
[0] => Black
[1] => Boy
[2] => L
) [9] => Array
(
[0] => Black
[1] => Girl
[2] => S
) [10] => Array
(
[0] => Black
[1] => Girl
[2] => M
) [11] => Array
(
[0] => Black
[1] => Girl
[2] => L
) [12] => Array
(
[0] => Yellow
[1] => Boy
[2] => S
) [13] => Array
(
[0] => Yellow
[1] => Boy
[2] => M
) [14] => Array
(
[0] => Yellow
[1] => Boy
[2] => L
) [15] => Array
(
[0] => Yellow
[1] => Girl
[2] => S
) [16] => Array
(
[0] => Yellow
[1] => Girl
[2] => M
) [17] => Array
(
[0] => Yellow
[1] => Girl
[2] => L
) )

php多个数组组合算法 火车头免登录发布接口代码备忘的更多相关文章

  1. 火车采集器 帝国CMS7.2免登录发布模块

    帝国cms7.2增加了金刚模式,登录发布有难度.免登录发布模块配合火车采集器,完美解决你遇到的问题. 免登录直接获取栏目列表 通过文件内设置密码免登录发布数据 帝国cms7.2免登陆文章发布接口使用说 ...

  2. 排列组合算法(PHP)

    用php实现的排列组合算法.使用递归算法,效率低,胜在简单易懂.可对付元素不多的情况. //从$input数组中取$m个数的组合算法 function comb($input, $m) { if($m ...

  3. 帝国cms7.5免登陆发布模块

    帝国cms7.5免登陆发布文章. 帝国cms增加了金刚模式,登录发布文章有难度.免登录发布模块配合火车采集器,完美解决你遇到的问题. 1.必备工具: 1.火车采集器 2.免登陆发布接口 3.帝国cms ...

  4. 基于C#程序设计语言的三种组合算法

    目录 基于C#程序设计语言的三种组合算法 1. 总体思路 1.1 前言 1.2 算法思路 1.3 算法需要注意的点 2. 三种组合算法 2.1 普通组合算法 2.2 与自身进行组合的组合算法 2.3 ...

  5. JAVA-- M选N的组合算法

      M选N的组合算法 只要每个数字出现一次就可以   举例 :也就是说123与321和213属于重复 只算一组  此算法已经排除了重复数据  应用--彩票的注数算法 本程序的思路是开一个数组b,其长度 ...

  6. Lua版组合算法

    高效率的排列组合算法--<编程珠矶>--Lua实现 原文链接 原文是python实现的,这里给出lua版本的实现 组合算法     本程序的思路是开一个数组,其下标表示1到m个数,数组元素 ...

  7. python实现高效率的排列组合算法-乾颐堂

    组合算法 本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标 代表的数被选中,为0则没选中. 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数. 然后从左到右扫描数组 ...

  8. Adaboost\GBDT\GBRT\组合算法

    Adaboost\GBDT\GBRT\组合算法(龙心尘老师上课笔记) 一.Bagging (并行bootstrap)& Boosting(串行) 随机森林实际上是bagging的思路,而GBD ...

  9. n全排列输出和 n个数的组合(数字范围a~b)

    n全排列输出: int WPermutation(int num, bool bRepeat) num表示num全排列 bRepeat标志是否产生重复元素的序列. int Permutation(in ...

随机推荐

  1. kill-9 kill-15

    kill -9 PID 是操作系统从内核级别强制杀死一个进程. kill -15 PID 可以理解为操作系统发送一个通知告诉应用主动关闭. kill -15 PID 效果是正常退出进程,退出前可以被阻 ...

  2. Python聚类算法之基本K均值实例详解

    Python聚类算法之基本K均值实例详解 本文实例讲述了Python聚类算法之基本K均值运算技巧.分享给大家供大家参考,具体如下: 基本K均值 :选择 K 个初始质心,其中 K 是用户指定的参数,即所 ...

  3. Botanical Dimensions:借助第九代智能英特尔® 酷睿™ 处理器实现独特沉浸式体验

    本文介绍位于洛杉矶的互动体验设计工作室 Master of Shapes (MOS) 打造 Botanical Dimensions 时所做出的技术努力.在这种互动式多世界体验中,参与者将穿越丛林,寻 ...

  4. 手写一个简单到SpirngMVC框架

    spring对于java程序员来说,无疑就是吃饭到筷子.在每次编程工作到时候,我们几乎都离不开它,相信无论过去,还是现在或是未来到一段时间,它仍会扮演着重要到角色.自己对spring有一定的自我见解, ...

  5. SSM到Spring Boot入门与综合实战

    一:Spring从入门到进阶 1 Spring入门 1.1 Spring IOC的底层实现原理:工厂 + 反射 + 配置文件 <bean id="us" class=&quo ...

  6. 服务器iptables规则记录

    很多时候,我在我自己的VPS上面部署了Cobalt Strike,可是网上很多叼毛就会扫描我们的VPS,然后发现我们的Cobalt Strike,如果你还建有web delivery,还会被人家下载上 ...

  7. 测试工具/PostMan

    1.postman测试上传文件

  8. java8流式编程(一)

    传送门 <JAVA8开发指南>为什么你需要关注 JAVA8 <Java8开发指南>翻译邀请 Java8初体验(一)lambda表达式语法 Java8初体验(二)Stream语法 ...

  9. SpringSecurity 配置

    SpringSecurity+JWT https://www.jianshu.com/p/5b9f1f4de88d https://blog.csdn.net/qq_35494808/article/ ...

  10. CentOS7修改内核启动顺序

    CentOS7修改内核启动顺序: 1.首先查看当前系统有几个内核 cat /boot/grub2/grub.cfg |grep menuentry   2.查看当前默认内核 grub2-editenv ...