确定数组所有可能子集的闭包是关系数据库设计中的关键步骤。要在 PHP 中查找非重复子集,请考虑以下方法:
function powerSet(array $array) : array { // add the empty set $results = [[]]; foreach ($array as $element) { foreach ($results as $combination) { $results[] = [...$combination, $element]; } } return $results; } $ATTRIBUTES = ['A', 'B', 'C', 'D']; $SUBSETS = powerSet($ATTRIBUTES);
此函数使用 array_merge 生成所有可能的子集,包括空集。生成的 $SUBSETS 数组将包含问题中请求的所有非重复子集:
[ [], ['A'], ['B'], ['A', 'B'], ['C'], ['A', 'C'], ['B', 'C'], ['A', 'B', 'C'], ['D'], ['A', 'D'], ['B', 'D'], ['A', 'B', 'D'], ['C', 'D'], ['A', 'C', 'D'], ['B', 'C', 'D'], ['A', 'B', 'C', 'D'] ]
此方法为在 PHP 中查找数组子集提供了简洁高效的解决方案,使其适用于各种数据分析和数据库设计任务。
以上是如何在 PHP 中高效生成数组的所有子集?的详细内容。更多信息请关注PHP中文网其他相关文章!