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
Lepaskan: 2024-11-16 13:46:03
asal
430 orang telah melayarinya

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'];
Salin selepas log masuk

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;
}
Salin selepas log masuk

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'],... ]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan