PHP输出多个元素的排列或组合的方法


Posted in PHP onMarch 14, 2017

实例如下:

<?php
$arr = array('a','b','c','d');
$result = array();
$t = getCombinationToString($arr, 1);
print_r($t);
$t = getCombinationToString($arr, 2);
$t2 = getunique($t);
print_r($t2);
$t = getCombinationToString($arr, 3);
$t2 = getunique($t);
print_r($t2);
$t = getCombinationToString($arr, 4);
$t2 = getunique($t);
print_r($t2);

function getunique($t){
	$t2 = array();
	//print_r($t);
	for($i=0;$i<count($t);$i++){
		$count_list = array_count_values($t[$i]);
		$flag = 1;
		foreach($count_list as $ck=>$cv){
			if($cv>1){
				$flag = 0;
				break;
			}
		}
		if($flag){
			sort($t[$i]);
			$flag2 = 1;
			if($t2){
				foreach($t2 as $t2k=>$t2v){
					if($t[$i]==$t2v){
						$flag2 = 0;
						break;
					}
				}
			}
			if($flag2){
				$t2[] = $t[$i];
			}
		}
	}
	return $t2;
}

function getCombinationToString($arr, $m) {
	if ($m ==1) {
	 return $arr;
	}
	$result = array();
	
	$tmpArr = $arr;
	unset($tmpArr[0]);
	for($i=0;$i<count($arr);$i++) {
		$s = $arr[$i];
		$ret = getCombinationToString(array_values($tmpArr), ($m-1), $result);
		
		foreach($ret as $row) {
			//$result[] = $s . $row;
			$temp = array();
			$temp[] = $s;
			if(is_array($row)){
				$temp = array_merge($temp,$row);
			}else{
				$temp[] = $row;
			}
			sort($temp);
			$result[] = $temp;
		}
	}
 return $result;
}

?>

共15种排列结果。

以上这篇PHP输出多个元素的排列或组合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
使用php+xslt在windows平台上
Oct 09 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
深入了解PHP类Class的概念
Jun 14 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
May 13 PHP
php魔术变量用法实例详解
Nov 13 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP学习记录之数组函数
Jun 01 PHP
Linux下快速搭建php开发环境
Mar 13 #PHP
php创建图像具体步骤
Mar 13 #PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 #PHP
PHP计算近1年的所有月份
Mar 13 #PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 #PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 #PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 #PHP
You might like
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
laravel model 两表联查示例
2019/10/24 PHP
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
高分子材料与工程专业个人求职信
2013/12/15 职场文书
党员组织关系介绍信
2014/02/13 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python