服务器之家

服务器之家 > 正文

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

时间:2021-04-30 16:05     来源/作者:PHP教程网

实例如下:

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

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部