Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Cekap Mencari Semua Subset Tidak Berulang Array dalam PHP?

Bagaimana untuk Cekap Mencari Semua Subset Tidak Berulang Array dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-16 13:46:03426semak imbas

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

Mencari Subset Array dalam PHP

Apabila berurusan dengan pangkalan data hubungan, menentukan penutupan untuk semua subset atribut boleh menjadi tugas yang kompleks . Artikel ini meneroka cara untuk mencari subset tidak berulang dalam PHP dengan cekap.

Mentakrifkan Tatasusunan

Kami mentakrifkan tatasusunan $ATTRIBUTES untuk mewakili set atribut:

$ATTRIBUTES = ['A', 'B', 'C', 'D'];

Penjanaan Subset

Untuk menjana semua kemungkinan subset $ATTRIBUTES, kami memanfaatkan fungsi 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;
}

Contoh Penggunaan

Melaksanakan $subsets = powerSet($ATTRIBUTES) akan mengeluarkan subset berikut:

[['',''],['A'],['B'],['A','B'],['C'],['A','C'],['B','C'],['A','B','C'],['D'],['A','D'],['B','D'],['A','B','D'],... ]

Ini menunjukkan cara kita boleh mencari dan menyimpan semua subset tidak berulang bagi tatasusunan dengan cekap dalam PHP. Pendekatan ini menyediakan penyelesaian yang mantap untuk mengendalikan penutupan subset atribut dalam skema pangkalan data hubungan.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Semua Subset Tidak Berulang Array dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn