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
Lepaskan: 2024-11-17 18:58:02
asal
381 orang telah melayarinya

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan