
<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种组合,但是我觉得不太完善还,你可以再修改补充。
我想了想,问题还很多,我会继续思考这个问题知道给你一个满意的答复
数组指针函数
current() - 返回数组中的当前单元
end() - 将数组的内部指针指向最后一个单元
prev() - 将数组的内部指针倒回一位
reset() - 将数组的内部指针指向第一个单元
each() - 返回数组中当前的键/值对并将数组指针向前移动一步
next() - 将数组中的内部指针向前移动一位
这个可以取巧,先把这个数插进数组,然后数组排序,然后获得这个数的下标,-1就是相对位置的值前面26的值,27本来下标就是源数组中的后一个
死一点的办法就是for循环对比值了,关键比对if:
if(arr[i]<27 && arr[i+1]<27) continue;
if(arr[i]<27 && arr[i+1]>27) echo 相对位置在i,i+1之间 ;
具体自己写啊
//你可以用下面的方式试下,我这边考虑到的是遍历哈,假设上面的数组名字为$cate_arr
foreach($cate_arr as $v){
$values = array_values($v);
if(in_array("分类1", $values)) {
$id = $v["id"]; //这样就可以得到分类1的ID值了
break;
}
}
以上就是关于用php定义一个函数,可以求出并返回数组中不同元素相加得17的所有的组合。全部的内容,包括:用php定义一个函数,可以求出并返回数组中不同元素相加得17的所有的组合。、php 如何取出数组中第一个和最后一个元素的值、php 数值与数组中的值进行比较获取数组相对的KEY值:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)