问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么能用PHP输出一个由a,b,c三个字母组成的全部组合呢?

发布网友 发布时间:2023-10-04 08:11

我来回答

4个回答

热心网友 时间:2024-11-17 05:57

你这个不是组合的问题,而是排列的问题。
从网上给你找了段现成的代码:
<?php
function permutations($letters,$num){
$last = str_repeat($letters{0},$num);
$result = array();
while($last != str_repeat(lastchar($letters),$num)){
$result[] = $last;
$last = char_add($letters,$last,$num-1);
}
$result[] = $last;
return $result;
}
function char_add($digits,$string,$char){
if($string{$char} <> lastchar($digits)){
$string{$char} = $digits{strpos($digits,$string{$char})+1};
return $string;
}else{
$string = changeall($string,$digits{0},$char);
return char_add($digits,$string,$char-1);
}
}
function lastchar($string){
return $string{strlen($string)-1};
}
function changeall($string,$char,$start = 0,$end = 0){
if($end == 0) $end = strlen($string)-1;
for($i=$start;$i<=$end;$i++){
$string{$i} = $char;
}
return $string;
}
?>

用法示例 :

<?php
$arr=permutations("ABC",3);
print_r($arr);
?>

输出 :

Array
(
[0] => AAA
[1] => AAB
[2] => AAC
[3] => ABA
[4] => ABB
[5] => ABC
[6] => ACA
[7] => ACB
[8] => ACC
[9] => BAA
[10] => BAB
[11] => BAC
[12] => BBA
[13] => BBB
[14] => BBC
[15] => BCA
[16] => BCB
[17] => BCC
[18] => CAA
[19] => CAB
[20] => CAC
[21] => CBA
[22] => CBB
[23] => CBC
[24] => CCA
[25] => CCB
[26] => CCC
)

热心网友 时间:2024-11-17 05:57

<?php
//兄弟我原创的...给点辛苦分吧哈哈。

$str = array('A','B','C','D');//初始数据,可以无限添加。

//函数体
function A($array, $return='')
{
if(!$return) $return = $array;//初始化
$temp = array();
//组合新数据
foreach ($return as $value)
{
foreach ($array as $v)
{
$temp[] = $value.$v;
}
}
$return = $temp;

//判断是否输出结果
if(strlen($return[0])==count($array))
{
return $return;
}else{
$return = A($array, $return);
return $return;
}
}

//执行输出
print_r(A($str));

?>

热心网友 时间:2024-11-17 05:58

看着改吧……呵呵
<?php
$a=A;
$b=B;
$c=C;
$m= rand(1,30);
$n= rand(1,20);
for($i=0;$i<$m;$i++)
{
for ($ii=0;$ii<$n;$ii++)
{echo $a;}
for ($ii=0;$ii<$n;$ii++)
{echo $b;}
for ($ii=0;$ii<$n;$ii++)
{echo $c;}
}

热心网友 时间:2024-11-17 05:58

<?php
$sum=0;
for($i=a;$i<=c;$i++)
{
for($j=a;$j<=c;$j++)
{
for($k=a;$k<=c;$k++)
{
echo $i.$j.$k."<br/>";
$sum++;
}
}
}
echo "一共有{$sum}个组合";
?>
呵呵,一共有27个组合呢。不重复
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 PHP 中,$this在一个方法中调用方法属性时,为什么是$this-&gt;$name,如下... 夏侯渊被封的征西将军是什么官职 征西将军的介绍 京东购买奶粉要提供身份证,安全吗 厨师用天然气炒菜,都是一直用大火吗?手撕包菜我试过用大火炒,... 最近煮的包菜都是生的,怎么才能煮熟包菜? 饺孑馅里的青菜要炒一下吗?我用包菜做的难吃。 一张A4纸,页边距应该设置多少合适? 电影《青春真好》的主题曲是什么歌1 电视剧版致青春插曲有哪些 片尾曲 主题曲叫什么名字 所有歌曲14 电影既然青春留不住插曲有哪些,片尾曲,主题曲叫什么 三星note3手机有3g信号,为什么只显示2g网? 厨房龙头买抽拉式的好用吗?质量好吗? 血手宝典调枪在逆战中能否把所有步枪弹道调到一个点上,主要是X...1 逆战改版后为什么我能看见弹道了 逆战我的步枪弹道控制不好怎么办???????????????...3 听他们说刚上映了一部电影叫灰姑娘!这部电影是哪个国家演的,是...8 在微信上支付该怎么撤回 微信转错账怎么退回撤回 微信转错帐了应该怎么撤回? 有3g信号但我的三星note3手机为什么只显示2g 为什么我的三星a7手机没有3g信号 如果把茶壶壶口封住,水会从壶嘴流出来么?会不会是连通器原理1 厨师用天然气炒菜,都是一直用大火吗?手撕包菜我试过用大火炒,... 灰姑娘电影真人版是哪个国家的诞生 有一部关于灰姑娘的电影,是国外的,叫什么名字啊?4 厨房用的水龙头该怎么选购?具体哪个品牌好? 关于厨房用的水龙头,请问哪种较好? 为什么手机登陆支付宝老是显示系统时间不对,知道大神帮忙!67 厨房有必要装冷热水龙头吗? 仲记企业怎么样 登陆手机支付宝老显示手机时间不对,登陆不上怎么办?4 郑州仲记餐饮管理有限公司怎么样? #河南仲记新农业发展有限公司#请问公司待遇咋样22 河南仲记新农业发展有限公司信息路分公司怎么样? 河南仲记新农业发展有限公司豫满楼分公司怎么样? 新疆仲记佳荣餐饮管理有限公司怎么样? 邹城市仲记麻辣猪蹄餐饮有限公司怎么样? 为什么所有的网络视频软件都打不开 郑州仲记酒楼怎么样77