private function powerSet(array $sample) : array { $results = [[]]; foreach ($sample as $item) { foreach ($results as $combination) { $results[] = array_merge(array($item), $combination); } } return $results; }