and*_*osh 0 php arrays math set subset
我想计算所有可能的子集形式数组的总和。
$array= Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 ); //changing
function powerSet($array) {
// add the empty set
$results = array(array());
foreach ($array as $element) {
foreach ($results as $combination) {
$results[] = array_merge(array($element), $combination);
$total= array_sum($results); // I try this
}
echo $total; // I try this
}
return $results;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码用于查找子集。我从这里找到了这段代码。我只添加array_sum但显示0的方式如何找到每个子集的总和?有什么办法吗?
$result函数中的in是数组数组,因此您不能仅array_sum在其上使用。为了对每个子集求和,您需要与array_map一起使用array_sum。
您可以在函数末尾进行操作-只需添加print_r(array_map("array_sum", $results));为最后一行(如果您希望将其作为输出)即可。
我喜欢@ splash58有关在函数外部使用它的评论:
$ans = array_map("array_sum", powerSet($array));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |