Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjana Semua Subset Array dengan Cekap dalam PHP?

Bagaimanakah Saya Boleh Menjana Semua Subset Array dengan Cekap dalam PHP?

DDD
DDDasal
2024-11-17 18:58:02403semak imbas

How Can I Efficiently Generate All Subsets of an Array in PHP?

Mencari Subset Tatasusunan dalam PHP

Menentukan penutupan semua kemungkinan subset tatasusunan ialah langkah penting dalam reka bentuk pangkalan data hubungan. Untuk mencari subset tidak berulang dalam PHP, pertimbangkan pendekatan berikut:

Penjanaan Subset Menggunakan array_merge

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);

Fungsi ini menggunakan array_merge untuk menjana semua subset yang mungkin, termasuk set kosong. Tatasusunan $SUBSETS yang terhasil akan mengandungi semua subset tidak berulang yang diminta dalam soalan:

[
    [],
    ['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']
]

Kaedah ini menyediakan penyelesaian yang ringkas dan cekap untuk mencari subset tatasusunan dalam PHP, menjadikannya terpakai kepada pelbagai data tugasan analisis dan reka bentuk pangkalan data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Subset Array dengan Cekap 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