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

 更新时间:2017年03月14日 08:31:49   投稿:jingxian  
下面小编就为大家带来一篇PHP输出多个元素的排列或组合的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

实例如下:

<?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集成动态口令认证

    这篇文章主要为大家详细介绍了php集成动态口令认证,动态口令采用一次一密、用过密码作废的方式来提高安全性能,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • laravel 5 实现模板主题功能(续)

    laravel 5 实现模板主题功能(续)

    前面一篇文章,我们简单讨论了laravel模板主题功能,本文我们继续探讨laravel模板主题功能的实现,本次实现比较重,有兴趣慢慢看吧。
    2015-03-03
  • ECshop 迁移到 PHP7版本时遇到的兼容性问题

    ECshop 迁移到 PHP7版本时遇到的兼容性问题

    最近有网友问我在php7上安装ecshopv2.7.3时,报错,究竟了半天没有找到原因,下面由脚本之家小编给大家分析此问题出现的原因
    2016-02-02
  • PHP检测移动设备类mobile detection使用实例

    PHP检测移动设备类mobile detection使用实例

    这篇文章主要介绍了PHP检测移动设备类mobile detection使用实例,mobile detection可以检测到绝大部分手机、平板电脑的操作系统、浏览器等数据,需要的朋友可以参考下
    2014-04-04
  • PHP实现原生态图片上传封装类方法

    PHP实现原生态图片上传封装类方法

    这篇文章主要介绍了PHP实现原生态图片上传封装类方法,这里整理了详细的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • 适合PHP初学者阅读的4本经典书籍

    适合PHP初学者阅读的4本经典书籍

    这篇文章主要为大家详细介绍了适合PHP初学者阅读的4本经典书籍,提高大家的php开发水平,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Smarty模板变量调节器用法分析

    Smarty模板变量调节器用法分析

    这篇文章主要介绍了Smarty模板变量调节器用法,较为详细的分析了Smarty模板变量调节器的功能与具体使用技巧,需要的朋友可以参考下
    2016-05-05
  • php 输入输出流详解及示例代码

    php 输入输出流详解及示例代码

    本文主要介绍php 输入输出流,这里整理了相关资料及简单示例代码,有需要的小伙伴可以参考下
    2016-08-08
  • jQuery向下滚动即时加载内容实现的瀑布流效果

    jQuery向下滚动即时加载内容实现的瀑布流效果

    下拉滚动条或鼠标滚轮滚动到页面底部时, 动态即时加载新内容,通过本文给大家介绍jQuery向下滚动即时加载内容实现的瀑布流效果,感兴趣的朋友参考下
    2016-01-01
  • php反射应用示例

    php反射应用示例

    这篇文章主要介绍了php反射应用示例,需要的朋友可以参考下,代码很简单,直接看下面的代码吧
    2014-02-02

最新评论