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获得当前的脚本网址
Dec 10 PHP
Snoopy类使用小例子
Apr 15 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 PHP
PHP新手入门学习方法
May 08 PHP
php url路由入门实例
Apr 23 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
Jan 07 PHP
基础的WordPress插件制作教程
Nov 24 PHP
Laravel中Trait的用法实例详解
Mar 16 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
深入学习微信网址链接解封的防封原理visit_type
Aug 15 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
967 个函式
2006/10/09 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
JavaScript字符串对象
2017/01/14 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
js实现每日签到功能
2018/11/29 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
Vite和Vue CLI的优劣
2021/01/30 Vue.js
python类和函数中使用静态变量的方法
2015/05/09 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
境外导游求职信
2014/02/27 职场文书
本科应届生自荐信
2014/06/29 职场文书
低碳环保演讲稿
2014/08/28 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
暑期家教宣传单
2015/07/14 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏