从小到大排列组合 php,求一个一维数组中,n个元素的不同组合,并返回该数组
array('a1','b2','c3','d4','e5','x1','y1','z1');
比如以上数组
我想要这个数组元素中三个元素的不同组合,例如下
array('a1','b2','c3');
array('a1','b2','d4');
array('a1','b2','e5');
array('a1','b2','x1');
array('a1','b2','y1');
....
并最终返回这样一个数组
array(
array('a1','b2','c3'),
array('a1','b2','d4'),
array('a1','b2','e5'),
array('a1','b2','x1'),
array('a1','b2','y1'),
......
)
回复内容:
array('a1','b2','c3','d4','e5','x1','y1','z1');
比如以上数组
我想要这个数组元素中三个元素的不同组合,例如下
array('a1','b2','c3');
array('a1','b2','d4');
array('a1','b2','e5');
array('a1','b2','x1');
array('a1','b2','y1');
....
并最终返回这样一个数组
array(
array('a1','b2','c3'),
array('a1','b2','d4'),
array('a1','b2','e5'),
array('a1','b2','x1'),
array('a1','b2','y1'),
......
)
三层foreach解决
$data = array('a1','b2','c3','d4','e5','x1','y1','z1');
foreach ($data as $k_1 => $v_1) {
foreach ($data as $k_2 => $v_2) {
foreach ($data as $k_3 => $v_3) {
if ($v_1 !== $v_2 && $v_1 !== $v_3 && $v_2 !== $v_3) {
var_dump([$v_1,$v_2,$v_3]);
}
}
}
}
排列组合嘛,三个数的索引的话终归是有大小的,把他们从小到大排列,
设为a b c d,然后(这是数学题了)
谢谢邀请。数学没学好,你去看看手册里面的数据排序/合并函数用法
Array
(
[0] => abc
[1] => abd
[2] => acc
[3] => acd
[4] => adc
[5] => add
[6] => bbc
[7] => bbd
[8] => bcc
[9] => bcd
[10] => bdc
[11] => bdd
[12] => cbc
[13] => cbd
[14] => ccc
[15] => ccd
[16] => cdc
[17] => cdd
[18] => dbc
[19] => dbd
[20] => dcc
[21] => dcd
[22] => ddc
[23] => ddd
)
给你一个思路吧
array('a1','b1','c1')和array('c1','a1','b1')算重复吗?
相关标签:php
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
从小到大排列组合 php,求一个一维数组中,n个元素的不同组合,并返回该数组相关推荐
- 数组去重:将一数组中重复的元素去掉剩余部分保存到新数组中
思路:将旧数组中不重复的元素选取出来放到新数组中,重复的元素只保留一个放到新数组中.首先,需要定义一个新数组用来把保存元素,使用for循环来对旧数组进行遍历.根据旧数组中的元素去查询新数组,利用if条 ...
- 找出现有Vector或ArrayList或数组中重复的元素给现有Vector或ArrayList或数组去重
//直接上代码:public static void main(String[] args) {List<Integer> list = new Vector<Integer> ...
- js使用slice方法获取数组中某段元素
js使用slice方法获取数组中某段元素 slice() 方法可从已有的数组中返回选定的元素. 语法:arrayObj.slice(start, [end]) 参数: start:必需.规定从何处开始 ...
- 删除数组中的某个元素的方法
在 JavaScript 中,可以使用 splice() 方法删除数组中的某个元素.这个方法可以修改原数组,从指定的索引开始删除指定数目的元素,并且可选地插入新的元素.下面是一个使用 splice() ...
- 删除数组中重复的元素
通过下标删除数组中某个元素 1 var strArr = str4.split(","); // 字符串转数组 2 strArr.sort(); // 重新排序,升降都可以 3 f ...
- 递归算法之排列组合-求一个集合S的m个元素的组合和所有可能的组合情况
求一个集合S的m个元素组合的所有情况,并打印出来,非常适合采用递归的思路进行求解.因为集合的公式,本身就是递归推导的: C(n,m) = C(n-1,m-1) + C(n-1,m). 根据该公式,每次 ...
- Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小
7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...
- Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...
- C语言每日一练——第10天:求一个矩阵主对角线及副对角线元素之和
C语言每日一练 2021年9月18日 题目描述 求一个矩阵主对角线及副对角线元素之和 分析 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于 ...
- 动态规划系列---求数组中两个元素差的最大值
题目 求数组中两个元素差的最大值(后面的元素减去前面的元素):对应实际生活中的股票买卖,找出一只股票走势里面可能的最大收益: 思路 类似于求数组连续和的最大值: 保存最大差值和最小值,遍历数组,如果 ...
最新文章
- 怎么样MyEclipse配置Tomcat?
- Java基础之多线程详细分析
- bash-高级编程--位置变量
- C/C++学习之路_七: 内存管理
- 本地连不上远程mysql数据库(2)
- 3蛋白wb_老司机手把手教你选WB内参
- 调色插件怎么安装_修图调色一键搞定!PS大师级调色插件NikCollection 八合一送你...
- 基础编程题目集 7-3 逆序的三位数 (10 分)
- androidentity什么用_Android multipartentity的用法
- 如何将mysql中的表传到elipse中_eclipse怎么连接到MySQL中的表!!!!!
- 完成中国福利彩票快三的程序设计
- 世界各国国家代码简称 - 备用
- 中文文本标注工具调研以及BRAT安装使用
- 华为路由器IPv6 over IPv4 GRE隧道配置详解
- LTE物理层概述(7)-- LTE之Turbo编码及其matlab仿真1
- 北大计算机系女神每天必看必学的IT公众号
- 为什么说java是一个纯粹的面向对象的语言?面向对象语言和面向对象编程
- 还不会用Vue写出的excel表实现pdf导出吗?来,豪豪手把手教你
- 二维码第三方支付介绍
- SyntaxError: Missing parentheses in call to ‘print‘. 正解
热门文章
- 为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件。请单击这里获取选项......
- 浅谈 System.Linq.Enumerable.AsEnumerable 方法
- 高性能 Windows Socket 服务端与客户端组件(HP-Socket v1.0.1 源代码及测试用例下载)...
- Python使用matplotlib可视化模拟正弦余弦折线图
- 计算机grand,The Grand
- PHP获取每个订单下订单商品的数量
- iis服务器网站指向ip地址,IIS之Web服务器 一个IP地址对应多个Web站点 多个域名...
- Windows开发签名工具(SignTool)下载
- 传统武术家为什么看起来厉害?谈实战的重要性
- LINUX右键打开方式,如何同时存在多种应用?