PHP 多个一维数组排列组合的所有可能
Posted 鱼尾纹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 多个一维数组排列组合的所有可能相关的知识,希望对你有一定的参考价值。
<?php // auth bin.chen 525945448 $a = array(‘A‘,‘B‘,‘Y‘); $b = array(‘C‘,‘D‘,‘P‘); $c = array(‘E‘,‘F‘,‘G‘); $f = array(‘P‘,‘U‘,‘M‘); $d = array($a,$b,$c,$f ); //计算每一个数组的长度 $len = 1; $arrLen = count($d); //需要排列数组有多少个 $recIndex = null; //记录当前该取的位置 foreach ($d as $key => $value) { $lenRec[] = count($value); $len = $lenRec[$key]*$len; $recIndex[] = 0;//第一次全部取第0个 } //算出% 的值 $count = 1; foreach ($lenRec as $key => $value) { $moduloVal = 1; if($arrLen == $count){ $modulo[] = count($d[$arrLen-1]); //等于最后一个的长度 }else{ $count_1 = 1; foreach ($lenRec as $index => $item) { $count_1 > $count && $moduloVal = $moduloVal*$item; $count_1 ++; } $modulo[] = $moduloVal; } $count ++;//为了防止$d key是有值的 不是自然序列 需要计数 } $i = 1; while ( $i <= $len) { $html = ‘‘; $count_2 = 0;// 取模 $temp = ‘‘; foreach ($d as $value) { $html .= $value[$recIndex[$count_2]%$lenRec[$count_2]]; $count_2 ++; } echo $html."<br>"; foreach ($modulo as $key => $value) { if($i%$value == 0 && $key < $arrLen - 1 ){ $recIndex[$key] = $recIndex[$key] +1; } if($key == $arrLen - 1){ if($i%$value == 0){ $recIndex[$key] = 0; }else{ $recIndex[$key] = $recIndex[$key] +1; } } } $i ++; //改变获取的位置 } ?>
以上是关于PHP 多个一维数组排列组合的所有可能的主要内容,如果未能解决你的问题,请参考以下文章