求高手帮忙用php解决一下问题

$arr=array("1","2","3","4","5");$num=4;得出结果为:1234,1235,1245,1345,2345请详细说明,谢谢!不好意思,问题... $arr = array("1","2","3","4","5");
$num = 4;
得出结果为:1 2 3 4 , 1 2 3 5, 1 2 4 5, 1 3 4 5, 2 3 4 5
请详细说明,谢谢!
不好意思,问题没说清楚,请见谅!!!
例如$num改为1是结果应该是1,2,3,4,5;改为2时应该是1 2,1 3,1 4,1 5,2 3,2 4,2 5,3 4,3 5,4 5;如此类推。无论是$num的值改变还是$arr的数组值改变,前提是$num的值小于等于$arr的个数,$num的值是决定每组组合数的位数,
展开
 我来答
失落的雨毛
2012-11-27 · TA获得超过844个赞
知道小有建树答主
回答量:1074
采纳率:50%
帮助的人:958万
展开全部
$arr = array("1","2","3","4","5");
$num = 4;
for($i = $num; $i >= 0 ;$i--){
foreach($arr as $key=>$val){
if($key == $i) continue;;
echo $val.' ';
}
echo '<br>';
}
追问
不好意思,问题没说清楚。我本来是想做到如下结果的,例如$num改为1是结果应该是1,2,3,4,5;改为2时应该是1 2,1 3,1 4,1 5,2 3,2 4,2 5,3 4,3 5,4 5;如此类推。能帮我解决吗?麻烦把结果发到我的邮箱:yunpofeng@qq.com 谢了!
a510104561
2012-11-27 · TA获得超过617个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:124万
展开全部
for(i=4;i<0;i--){

$array=$arr;

$array[i]="";
for(j=0;j<5;j++){
echo $array[j];
}

}
复制即可
追问
上面的$i应该是大于0才能执行,得出的结果还少一个,就是后面的2 3 4 5
追答
嗯 少了一个$把所有的i 和J 都换成$i 和$j   你把第一行换成for($i=4;$i<-1;$i--){       就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lecil
2012-11-27
知道答主
回答量:6
采纳率:0%
帮助的人:5.8万
展开全部
这个比较简单吧,4到0递减1 循环输出数组。每次不输出4 3 2 1 0 位置的数组值即可。

<?php
$arr = array("1","2","3","4","5");
$num = 4;
for(;$num>=0;$num--){ //递减循环

for($i=0;$i<5;$i++){ //循环输出数组的内容
if($num != $i) //每轮分别不输出第4 3 2 1 0数组位置的值
echo $arr[$i];
echo ' ';
}

if($num != 0) //输出中间的分隔符, 但最后一次不输出
echo ', ';
}
?>

这个我已经执行过了,直接复制就可以运行了。
追问
可以得出以上的结果,但是$num的值要是改变了,数据就全乱了,例如$num改为1是结果应该是1,2,3,4,5;改为2时应该是1 2,1 3,1 4,1 5,2 3,2 4,2 5,3 4,3 5,4 5;如此类推。无论是$num的值改变还是$arr的数组值改变,前提是$num的值小于等于$arr的个数,$num的值是多少,组合的出来的结果位数就是多少,麻烦你帮帮忙,正急着用,谢了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kimffy
2012-11-27 · 超过16用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:19.3万
展开全部
组合数?
追问
对,是将数组里面的数字进行组合成上面得出的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式