用php定义一个函数,可以求出并返回数组中不同元素相加得17的所有的组合。

 我来答
踩凰兑佑寿换1a
2014-03-24 · TA获得超过1018个赞
知道小有建树答主
回答量:508
采纳率:100%
帮助的人:571万
展开全部
<?php

$arr = array(1,2,3,4,5,6,7,8,9,10,11);
$data = seventeen($arr);
var_dump($data);
function seventeen($arr){
$st = null;
$temp = null;
$diff = null;
$data =array();
$oper =null;
foreach ($arr as $key => $value) {
$oper = $arr;
$st = $value;
unset($oper[$key]);
$data[$key] =null;
$data[$key].=$value.",";
if($st==17){
$data[$key] = $value;
continue;
}
while($st<17)
{
$diff = 17-$st;
$find = array_search($diff,$oper);
if($find!=false){
$st = $oper[$find]+$st;
$data[$key].=$oper[$find].",";
}
if($find==false){
$data[$key].=reset($oper).",";
$st = $st+reset($oper);
$hj = array_search(reset($oper), $oper);
unset($oper[$hj]);
}

}
    if($st>17)
     continue;
}
return $data;
}

?>
我尽量可能多的遍历结果 我这个数组用这个程序遍历出来10种组合,但是我觉得不太完善还,你可以再修改补充。
我想了想,问题还很多,我会继续思考这个问题知道给你一个满意的答复
tsotsi
2014-03-24 · TA获得超过940个赞
知道小有建树答主
回答量:1367
采纳率:55%
帮助的人:693万
展开全部
  function get17($arr){
$array=array();
$arrTmp=$arr;
foreach($arr  as $k=>$v){

        foreach($arrTmp as $k1=>$v1){
                if($k1!=$k &&($v+$v1)==17){
                    $array[]=array($v,$v1);
                }
        }

}
$tmp=array_chunk($array, count($array)/2);
return $tmp[0];
}
你可以再调优
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式