首页 > 开发 > PHP > 正文

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

2024-05-04 22:48:41
字体:
来源:转载
供稿:网友

实例如下:

<?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输出多个元素的排列或组合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持错新站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表