Как найти сумму каждого подмножества в php? - PullRequest
0 голосов
/ 04 февраля 2019

Я хочу вычислить сумму всех возможных массивов форм подмножеств.

$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, как найти сумму каждого подмножества?в любом случае?

1 Ответ

0 голосов
/ 04 февраля 2019

$result в функции - это массив массивов, поэтому вы не можете просто использовать array_sum для нее.Для суммирования каждого подмножества необходимо использовать array_map вместе с array_sum.

Вы можете сделать это в концефункция - просто добавьте print_r(array_map("array_sum", $results)); в качестве последней строки (если вы хотите, чтобы она выводилась).

Мне понравился комментарий @ splash58 об использовании его вне функции с:

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