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 相关文章推荐
example2.php
Oct 09 PHP
快速配置PHPMyAdmin方法
Jun 05 PHP
劣质的PHP代码简化
Feb 08 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
php mysql 封装类实例代码
Sep 18 PHP
Yii2框架BootStrap样式的深入理解
Nov 07 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
php + nginx项目中的权限详解
May 23 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
Dec 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
我的论坛源代码(五)
2006/10/09 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
基于JS实现的倒计时程序实例
2015/07/24 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
Python中设置变量访问权限的方法
2015/04/27 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
Python切片操作深入详解
2018/07/27 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
对python3新增的byte类型详解
2018/12/04 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python操作yaml说明
2020/04/08 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
优良学风班总结材料
2014/02/08 职场文书
给老师的检讨书
2014/02/11 职场文书
三月法制宣传月活动总结
2014/07/03 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
python xlwt模块的使用解析
2021/04/13 Python
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
HAM-2000摩机图
2021/04/22 无线电