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 相关文章推荐
mysql建立外键
Nov 25 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
php数组编码转换示例详解
Mar 11 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
Yii中的cookie的发送和读取
Jul 27 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
php和C#的yield迭代器实现方法对比分析
Jul 17 PHP
asp.net和php的区别点总结
Oct 10 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 PHP
如何在PHP中使用数组
Jun 09 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配合jquery实现增删操作具体实例
2013/12/12 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
js实现一键复制功能
2017/03/16 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
javascript实现延时显示提示框效果
2017/06/01 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
Python 可爱的大小写
2008/09/06 Python
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
易程科技软件测试笔试
2013/03/24 面试题
四年的个人工作自我评价
2013/12/10 职场文书
cf收人广告词大全
2014/03/14 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
2014年党务工作总结
2014/11/25 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
幼儿教师个人总结
2015/02/05 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python