实例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
<?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输出多个元素的排列或组合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。