Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kombinasi nombor dua dimensi PHP tidak mengalih keluar pendua

Kombinasi nombor dua dimensi PHP tidak mengalih keluar pendua

WBOY
WBOYasal
2023-05-23 11:40:07490semak imbas

Dalam PHP, kita selalunya perlu menggunakan tatasusunan, dan selalunya kami perlu menggabungkan tatasusunan, seperti menggabungkan dua tatasusunan menjadi satu tatasusunan atau menggabungkan berbilang tatasusunan menjadi satu tatasusunan. Apabila ia datang untuk menggabungkan tatasusunan dua dimensi, kita mungkin menghadapi masalah, iaitu tatasusunan yang digabungkan tidak akan menyahduplikasi secara automatik. Artikel ini akan memperkenalkan masalah dan penyelesaian gabungan nombor dua dimensi PHP tanpa penduaan.

1. Apakah tatasusunan dua dimensi

Dalam PHP, tatasusunan ialah struktur data yang sangat penting, dan setiap data mempunyai nilai dan indeks. Tatasusunan dua dimensi ialah tatasusunan bersarang dalam tatasusunan lain, iaitu setiap elemen ialah tatasusunan.

2. Tatasusunan dua dimensi dalam PHP

Dalam PHP, terdapat dua cara untuk mewakili tatasusunan dua dimensi, satu adalah menggunakan fungsi tatasusunan() dan satu lagi adalah menggunakan sintaks [] Sugar, berikut ialah contoh untuk menggambarkan:

// 使用array()函数表示二维数组
$students = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 19),
    array('name' => '王五', 'age' => 20)
);

// 使用[]语法糖表示二维数组
$students = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

3 Penggabungan tatasusunan dua dimensi dalam PHP

PHP menyediakan fungsi array_merge() untuk menggabungkan tatasusunan gabungkan berbilang tatasusunan. Kembalikan tatasusunan baharu, kod sampel adalah seperti berikut:

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '赵六', 'age' => 21],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);

print_r($students);

Hasil output adalah seperti berikut:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [3] => Array
        (
            [name] => 赵六
            [age] => 21
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)

Kita dapat melihat bahawa menggunakan fungsi array_merge() boleh digabungkan dengan mudah dua tatasusunan menjadi satu tatasusunan. Walau bagaimanapun, apabila terdapat unsur pendua dalam tatasusunan yang digabungkan, tatasusunan yang digabungkan tidak akan dinyahduplikasi secara automatik, seperti yang ditunjukkan di bawah:

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '李四', 'age' => 19],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);

print_r($students);

Hasil output adalah seperti berikut:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [3] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)

Kita dapat melihatnya ternyata terdapat dua elemen pendua dalam tatasusunan yang digabungkan [nama => '李思', umur => 19].

4. Penyelesaian kepada masalah gabungan nombor dua dimensi PHP tidak membuang pendua

Untuk menyelesaikan masalah gabungan nombor dua dimensi PHP tidak mengeluarkan pendua, kita boleh menggunakan fungsi array_unique(). Fungsi ini boleh digunakan untuk mengalih keluar elemen pendua daripada tatasusunan dan mengembalikan tatasusunan bukan pendua baharu.

Kod sampel adalah seperti berikut:

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '李四', 'age' => 19],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);
$students = array_unique($students, SORT_REGULAR);

print_r($students);

Hasil output adalah seperti berikut:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)

Kita dapat melihat bahawa menggunakan fungsi array_unique() boleh menggabungkan tatasusunan yang digabungkan dengan mudah . Akhir sekali, Dapatkan tatasusunan tanpa unsur pendua.

5. Ringkasan

Artikel ini memperkenalkan masalah dan penyelesaian gabungan nombor dua dimensi PHP tanpa deduplikasi, kita dapat mengetahui bahawa walaupun ia sangat mudah digunakan fungsi array_merge() Cantumkan tatasusunan, tetapi apabila ia melibatkan tatasusunan dua dimensi, cantuman itu tidak akan menyahduplikasi secara automatik Anda perlu menggunakan fungsi array_unique() untuk menyahduplikasi untuk mendapatkan tatasusunan baharu tanpa pendua.

Atas ialah kandungan terperinci Kombinasi nombor dua dimensi PHP tidak mengalih keluar pendua. 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
Artikel sebelumnya:php array terbalikArtikel seterusnya:php array terbalik