当前位置:首页 > PHP教程 > php函数 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2018-08-09 09:22:39 浏览: 评论:0 
  1. <?php 
  2. $arr=array('a','b','c','d'); 
  3. $result=array(); 
  4. $t= getCombinationToString($arr, 1); 
  5. print_r($t); 
  6. $t= getCombinationToString($arr, 2); 
  7. $t2= getunique($t); 
  8. print_r($t2); 
  9. $t= getCombinationToString($arr, 3); 
  10. $t2= getunique($t); 
  11. print_r($t2); 
  12. $t= getCombinationToString($arr, 4); 
  13. $t2= getunique($t); 
  14. print_r($t2); 
  15.   
  16. functiongetunique($t){ 
  17.     $t2=array(); 
  18.     //print_r($t); 
  19.     for($i=0;$i<count($t);$i++){ 
  20.         $count_list=array_count_values($t[$i]); 
  21.         $flag= 1; 
  22.         <a href="/tags.php/foreach/" target="_blank">foreach</a>($count_listas$ck=>$cv){ 
  23.             if($cv>1){ 
  24.                 $flag= 0; 
  25.                 break
  26.             } 
  27.         } 
  28.         if($flag){ 
  29.             sort($t[$i]); 
  30.             $flag2= 1; 
  31.             if($t2){ 
  32.                 foreach($t2as$t2k=>$t2v){ 
  33.                     if($t[$i]==$t2v){ 
  34.                         $flag2= 0; 
  35.                         break
  36.                     } 
  37.                 } 
  38.             } 
  39.             if($flag2){ 
  40.                 $t2[] =$t[$i]; 
  41.             } 
  42.         } 
  43.     } 
  44.     return$t2
  45.   
  46. functiongetCombinationToString($arr,$m) { 
  47.     if($m==1) { 
  48.      return$arr
  49.     } 
  50.     $result=array(); 
  51.       
  52.     $tmpArr=$arr
  53.     unset($tmpArr[0]); 
  54.     for($i=0;$i<count($arr);$i++) { 
  55.         $s=$arr[$i]; 
  56.         $ret= getCombinationToString(array_values($tmpArr), ($m-1),$result); 
  57.           
  58.         foreach($retas$row) { 
  59.             //$result[] = $s . $row; 
  60.             $temp=array(); 
  61.             $temp[] =$s
  62.             if(is_array($row)){ 
  63.                 $temp=array_merge($temp,$row); 
  64.             }else
  65.                 $temp[] =$row
  66.             } 
  67.             sort($temp); 
  68.             $result[] =$temp
  69.         } //phpfensi.com 
  70.     } 
  71.  return$result
  72.   
  73. ?> 

Tags: 元素 多个 方法

分享到: