PHP数组任意N个数相加等于一个定数

 1     /**
 2      * @param array $cc 所需数组
 3      * @param int $val 指定值
 4      * @return array
 5      */
 6     function demo($cc, $val)
 7     {
 8         for ($i = 1; $i < 1 << count($cc); $i++) {
 9             $sum  = 0;
10             $temp = "";
11             for ($j = 0; $j < count($cc); $j++) {
12                 if (($i & 1 << $j) != 0) {
13 
14                     $sum  += $cc[$j];
15                     $temp .= $cc[$j] . "+";
16                 }
17             }
18             if ($sum == $val) {
19                 $arr[] = trim($temp, '+');
20             }
21         }
22         return $arr;
23     }
24 
25 $cc = array(12, 12, 5, 9, 12, 5, 7, 5, 7, 9, 12,);
26 echo "<pre>";
27 print_r(demo($cc, 25));
View Code

 

posted @ 2022-04-13 20:03  helloPHPworld  阅读(94)  评论(0)    收藏  举报