这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
下面小编就为大家带来一篇 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 输出多个元素的排列或组合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0810/340378.html