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

2025-05-27 0 73

实例如下:

?

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP输出多个元素的排列或组合的方法 https://www.kuaiidc.com/73898.html

相关文章

发表评论
暂无评论