決定陣列所有可能子集的閉包是關聯式資料庫設計中的關鍵步驟。要在 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中文網其他相關文章!