Bagaimana untuk mencari semua subset tatasusunan dalam PHP

PHPz
Lepaskan: 2023-04-20 11:11:58
asal
829 orang telah melayarinya

PHP ialah bahasa skrip yang sangat berkuasa yang menyediakan banyak fungsi yang mudah Di antaranya, fungsi array_subset boleh digunakan untuk mendapatkan semua subset tatasusunan. Di bawah kami akan menerangkan cara menggunakannya.

Apakah subset tatasusunan?

Dalam matematik, subset bagi set ialah subset daripadanya yang mengandungi beberapa atau semua unsur dalam set asal. Contohnya, diberikan set {1, 2, 3}, subsetnya termasuk {1, 2, 3}, {1, 2}, {1, 3}, {2, 3} dan {1}, {2} dan {3}.

Dalam PHP, subset tatasusunan merujuk kepada mana-mana subarray berterusan tatasusunan, termasuk beberapa atau semua elemen dalam tatasusunan asal.

Cara menggunakan fungsi array_subset

Fungsi array_subset boleh digunakan untuk mendapatkan semua subset tatasusunan. Sintaks fungsi ini adalah seperti berikut:

array array_subset ( array $array , int $size [, bool $preserve_keys = FALSE ] )
Salin selepas log masuk

Penerangan parameter:

  • $array: tatasusunan subset yang akan diperolehi.
  • $size: Bilangan elemen dalam subset.
  • $preserve_keys: Sama ada untuk mengekalkan nama kunci tatasusunan asal, lalainya adalah FALSE.

Nilai pulangan: Mengembalikan tatasusunan yang mewakili semua subset $array.

Berikut ialah contoh:

$nums = [1, 2, 3, 4];
$subsets = array_subset($nums, 3);

print_r($subsets);
Salin selepas log masuk

Output adalah seperti berikut:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 4
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 4
        )

    [3] => Array
        (
            [0] => 1
            [1] => 3
            [2] => 4
        )

)
Salin selepas log masuk

Dalam contoh di atas, kami telah menentukan tatasusunan $nums dengan 4 elemen , dan kemudian gunakan fungsi array_subset untuk mendapatkan semua subsetnya, setiap subset mengandungi 3 elemen.

Seperti yang dapat dilihat daripada output, fungsi array_subset mengembalikan tatasusunan dua dimensi, di mana setiap subbarray mewakili subset $nums.

Contoh aplikasi

Dalam pembangunan sebenar, anda boleh menggunakan fungsi array_subset untuk mendapatkan semua subset tatasusunan dengan cepat dan memproses subset ini selanjutnya. Berikut ialah contoh mudah: Katakan kita mempunyai tatasusunan yang mengandungi beberapa nombor, dan kini kita perlu mencari semua kombinasi yang mana jumlahnya ialah nilai yang ditentukan.

Berikut ialah kod pelaksanaan:

function find_combinations($nums, $target) {
    $count = count($nums);
    $result = array();
    for ($i = 1; $i < $count; $i++) {
        $subsets = array_subset($nums, $i);
        foreach ($subsets as $subset) {
            if (array_sum($subset) == $target) {
                $result[] = $subset;
            }
        }
    }
    return $result;
}

// 示例:
$nums = [1, 3, 5, 7, 9];
$target = 8;
$combinations = find_combinations($nums, $target);

print_r($combinations);
Salin selepas log masuk

Output adalah seperti berikut:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 7
        )

    [1] => Array
        (
            [0] => 3
            [1] => 5
        )

)
Salin selepas log masuk

Dalam contoh di atas, kami mentakrifkan fungsi yang dipanggil find_combinations, yang Menerima tatasusunan $nums dan nilai sasaran $target, dan mengembalikan tatasusunan yang mengandungi semua subarray yang jumlahnya ialah $target.

Dalam fungsi, kita mula-mula menggelungkan kepanjangan subset, dari 1 hingga $count - 1. Kemudian gunakan fungsi array_subset untuk mendapatkan semua subset panjang $i dalam $nums dan melintasinya Jika jumlah elemen subset adalah sama dengan $target, tambahkannya pada tatasusunan hasil.

Seperti yang dapat dilihat daripada contoh di atas, fungsi array_subset boleh digunakan untuk mendapatkan semua subset tatasusunan dengan cepat, yang memudahkan penyelesaian beberapa masalah algoritma dan juga menunjukkan sepenuhnya fleksibiliti bahasa PHP.

Atas ialah kandungan terperinci Bagaimana untuk mencari semua subset tatasusunan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!