首页 > 解决方案 > 如何在php中找到每个子集的总和?

问题描述

我想计算所有可能的子集表单数组的总和。

$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;
}

上面的代码用于查找子集。我从这里找到了这段代码。我只是添加array_sum但显示 0 如何找到每个子集的总数?反正 ?

标签: phparraysmathsetsubset

解决方案


函数中的$result是数组数组,因此您不能仅array_sum在其上使用。为了总结每个子集,您需要与array_map一起使用array_sum

您可以在函数末尾执行此操作 - 只需添加print_r(array_map("array_sum", $results));为最后一行(如果您希望将其作为输出)。

我喜欢 @splash58 关于在函数之外使用它的评论:

$ans = array_map("array_sum", powerSet($array));

推荐阅读