在 PHP 中查找数组的子集
处理关系数据库时,确定属性所有子集的闭包可能是一项复杂的任务。本文探讨了如何在 PHP 中高效地查找不重复子集。
定义数组
我们定义数组 $ATTRIBUTES 来表示属性集:
$ATTRIBUTES = ['A', 'B', 'C', 'D'];
子集生成
要生成 $ATTRIBUTES 的所有可能子集,我们利用 powerSet 函数:
function powerSet(array $array) : array { // Start with the empty set $results = [[]]; // Iterate over the array elements foreach ($array as $element) { // Create new combinations by adding the element to existing combinations foreach ($results as $combination) { $results[] = [...$combination, $element]; } } return $results; }
示例用法
执行 $subsets = powerSet($ATTRIBUTES) 将输出以下子集:
[['',''],['A'],['B'],['A','B'],['C'],['A','C'],['B','C'],['A','B','C'],['D'],['A','D'],['B','D'],['A','B','D'],... ]
这演示了我们如何有效地查找和存储数组的所有不重复子集在 PHP 中。这种方法为处理关系数据库模式中属性子集的闭包提供了一个强大的解决方案。
以上是如何在 PHP 中高效查找数组的所有非重复子集?的详细内容。更多信息请关注PHP中文网其他相关文章!