首頁 > 後端開發 > php教程 > 如何在 PHP 中有效率地尋找數組的所有非重複子集?

如何在 PHP 中有效率地尋找數組的所有非重複子集?

Susan Sarandon
發布: 2024-11-16 13:46:03
原創
443 人瀏覽過

How to Efficiently Find All Non-Repeating Subsets of an Array in PHP?

在PHP 中尋找陣列的子集

處理關係資料庫時,確定屬性所有子集的閉包可能是一項複雜的任務。本文探討如何在 PHP 中有效率地尋找不重複子集。

定義陣列

我們定義陣列$ATTRIBUTES 來表示屬性集:

$ATTRIBUTES = ['A', 'B', 'C', 'D'];
登入後複製

子集產生

子集。 >
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;
}
登入後複製
要產生$ATTRIBUTES 的所有可能子集,我們利用powerSet 函數:

範例用法

[['',''],['A'],['B'],['A','B'],['C'],['A','C'],['B','C'],['A','B','C'],['D'],['A','D'],['B','D'],['A','B','D'],... ]
登入後複製
執行$subsets = powerSet($ATTRIBUTES) 將輸出以下子集:

這演示了我們如何有效地查找和儲存數組的所有不重複子集在PHP 中。這種方法為處理關聯式資料庫模式中屬性子集的閉包提供了一個強大的解決方案。

以上是如何在 PHP 中有效率地尋找數組的所有非重複子集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板