【发布时间】:2019-09-03 09:48:07
【问题描述】:
我想在我的结果中合并这两个数组
我的密码
<?php
/* Designated level for each exp
Level 2 - 23 exp
Level 3 - 34 exp
Level 4 - 45 exp
Level 5 - 56 exp
Level 6 - 68 exp
Level 7 - 79 exp
Level 8 - 90 exp
Level 9 - 101 exp
Level 10 - 112 exp
Level 11 - 123 exp
Level 12 - 134 exp
Level 13 - 145 exp
Level 14 - 156 exp
Level 15 - 168 exp
Level 16 - 179 exp
*/
$limit = 100000-99318;
// Level
$arrlevel = array ('Level 2','Level 3','Level 4','Level 5','Level 6','Level 7','Level 8','Level 9','Level 10','Level 11','Level 12','Level 13','Level 14','Level 15','Level 16');
// Exp
$array = array (23,34,45,56,68,79,90,101,112,123,134,145,156,168,179);
$array = array_filter($array, function($var) use ($limit) {
return ($var <= $limit);
});
$num = count($array);
$total = pow(2, $num);
$out = array();
for ($i = 0; $i < $total; $i++) {
$comb = array();
for ($j = 0; $j < $num; $j++) {
// is bit $j set in $i?
if (pow(2, $j) & $i){
$comb[] = $array[$j];
}
}
if (array_sum($comb) == $limit)
{
$out[] = $comb;
}
}
array_multisort(array_map('count', $out), SORT_ASC, $out);
$out = array_unique($out, SORT_REGULAR);
$m = 1;
foreach($out as $result)
echo "<b>Possible Answer ". $m++. " : </b> " .implode(', ', $result)."
<br><br>";
?>
输出:
可能的答案 1:
23、34、45、68、79、90、112、179
可能的答案 2:
23、34、45、68、79、90、123、168
可能的答案 3:
23、34、45、68、79、101、112、168
我想要这样的输出
可能的答案 1:
2 - 23 级 | 3 - 34 级 | 4 - 45 级 | 6 - 68 级 | 7 - 79 级 | 8 - 90 级 | 10 - 112 级 |等级 16 - 179
------------------------------------------
我想合并两个数组
(这个程序是关于寻找所有组合以达到结果[子集和程序])
【问题讨论】:
-
我不确定我是否正确理解了您的问题。我猜你一次问了很多事情?如果您已经拥有这两个数组,并且只想将它们组合起来,那么:php.net/manual/en/function.array-combine.php 呢?