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 文件上传源码分析(RFC1867)
Oct 30 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
PHP中soap的用法实例
Oct 24 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
php数组函数array_walk用法示例
May 26 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 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
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
PHP7 list() 函数修改
2021/03/09 PHP
javascript 动态加载 css 方法总结
2009/07/11 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
28个JS验证函数收集
2010/03/02 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
Python的面向对象思想分析
2015/01/14 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
python实现猜单词游戏
2020/05/22 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
机械专业应届生求职信
2013/09/21 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
群众路线剖析材料
2014/09/30 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
大学生求职自荐信
2015/03/24 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
Python利用folium实现地图可视化
2021/05/23 Python