源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-08-29 20:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP输出多个元素的排列或组合的方法
[b]实例如下:[/b]
<?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输出多个元素的排列或组合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部