3v4l.org

run code in 300+ PHP versions simultaneously
<?php //php 7.0.8 function power_set($array) { $results = [[]]; foreach ($array as $key => $value) { foreach ($results as $combination) { $results[] = $combination + [$key => $value]; } } // Remove the first empty set array_shift($results); return array_values($results); } function zero_sums($inputs) { $subsets = power_set($inputs); foreach ($subsets as $subset) { if (array_sum($subset) == 0) { echo implode(" & ", array_keys($subset)).PHP_EOL; } } } zero_sums(["a" => -1, "b" => -1, "c" => 2, "d" => 1, "e" => -1]); ?>
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
a & b & c a & d b & d a & c & e b & c & e d & e a & b & c & d & e

preferences:
115.45 ms | 1616 KiB | 4 Q