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

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

<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值:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9868810.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存