Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk memadam elemen yang sama dalam tatasusunan dua dimensi dalam php

Bagaimana untuk memadam elemen yang sama dalam tatasusunan dua dimensi dalam php

PHPz
PHPzasal
2023-04-26 09:09:26993semak imbas

Dalam pengaturcaraan PHP, kita sering menghadapi situasi di mana kita perlu mengendalikan tatasusunan dua digit. Dalam sesetengah kes, kami perlu mengalih keluar elemen yang sama untuk memastikan data unik. Artikel ini akan memperkenalkan cara memadam elemen yang sama dalam tatasusunan dua digit.

1. Apakah itu tatasusunan dua digit

Tatasusunan dua digit (juga dikenali sebagai "tatasusunan berbilang dimensi" atau "tatasusunan pelbagai") ialah struktur data yang mengandungi tatasusunan lain. Dalam PHP, kami biasanya menggunakan tatasusunan untuk menyimpan dan memanipulasi data. Tatasusunan dua digit ialah jenis tatasusunan khas di mana setiap elemen ialah tatasusunan. Kita boleh mengakses elemen dalam tatasusunan dua digit melalui dua atau lebih subskrip, contohnya:

$students = array(
  array("name"=>"张三", "age"=>18, "score"=>89),
  array("name"=>"李四", "age"=>22, "score"=>76),
  array("name"=>"王五", "age"=>20, "score"=>94)
);

Kod di atas mencipta tatasusunan dua digit yang mengandungi tiga elemen, setiap elemen ialah Tatasusunan yang mengandungi tiga kunci- pasangan nilai. Kita boleh menggunakan subskrip untuk mengakses elemen dalam tatasusunan dua digit, contohnya:

echo $students[0]["name"]; // 输出 张三
echo $students[1]["score"]; // 输出 76
echo $students[2]["age"]; // 输出 20

2. Bagaimana untuk memadamkan elemen yang sama dalam tatasusunan dua digit

Kadang-kadang, kita akan temui dua Tatasusunan bit mengandungi elemen yang sama. Sebagai contoh, kami mungkin memperoleh maklumat pelajar yang sama daripada sumber data yang berbeza, mengakibatkan pertindihan data pelajar. Dalam kes ini, kita perlu mengalih keluar elemen pendua untuk memastikan data unik.

PHP menyediakan fungsi array_unique() untuk mengalih keluar elemen pendua daripada tatasusunan. Walau bagaimanapun, menggunakan fungsi ini pada tatasusunan dua digit tidak memenuhi tujuan kami. array_unique() Fungsi ini hanya boleh memadamkan elemen pendua dalam tatasusunan satu dimensi, tetapi bukan dalam tatasusunan berbilang dimensi.

Oleh itu, kita perlu menulis kod kita sendiri untuk mengalih keluar elemen pendua dalam tatasusunan dua digit. Kita boleh menggunakan gelung untuk melelaran melalui setiap elemen dalam tatasusunan dua digit, dan pada setiap langkah bandingkan elemen semasa dengan elemen sebelumnya untuk melihat sama ada ia adalah sama. Jika ia adalah sama, padamkan elemen semasa. Berikut ialah pelaksanaan kod:

function removeDuplicateElements($array){
    $result = array();
    foreach ($array as $key => $value) {
        foreach ($result as $key2 => $value2) {
            if ($value == $value2) {
                unset($array[$key]);
            }
        }
        $result[] = $value;
    }
    return $result;
}

Dalam kod di atas, kami mencipta fungsi bernama removeDuplicateElements(), yang menerima tatasusunan dua digit sebagai parameter dan mengembalikan tatasusunan angka dengan unsur pendua dialih keluar. Tatasusunan dua digit.

Fungsi menggunakan dua gelung foreach secara dalaman untuk melintasi tatasusunan Gelung pertama digunakan untuk melintasi setiap elemen dalam tatasusunan dua digit. Pada setiap langkah, gelung kedua digunakan untuk mengulangi elemen yang telah ditambahkan pada tatasusunan hasil $result dan membandingkan elemen semasa dengan elemen sebelumnya.

Jika elemen semasa adalah sama dengan elemen sebelumnya, gunakan fungsi unset() untuk memadamkan elemen semasa. unset() Fungsi digunakan untuk memusnahkan pembolehubah yang ditentukan. Di sini, ia digunakan untuk mengalih keluar elemen tertentu daripada tatasusunan. Jika elemen semasa tidak sama dengan elemen sebelumnya, elemen semasa ditambah pada tatasusunan yang terhasil.

3. Pengujian dan Aplikasi

Kita boleh mencipta fungsi ujian untuk menguji keberkesanan fungsi removeDuplicateElements(). Berikut ialah kod untuk fungsi ujian:

function testRemoveDuplicateElements(){
    $students = array(
      array("name"=>"张三", "age"=>18, "score"=>89),
      array("name"=>"李四", "age"=>22, "score"=>76),
      array("name"=>"王五", "age"=>20, "score"=>94),
      array("name"=>"张三", "age"=>18, "score"=>89),
      array("name"=>"李四", "age"=>22, "score"=>76)
    );

    $result = removeDuplicateElements($students);
    print_r($result);
}

Dalam kod di atas, kami telah mencipta tatasusunan dua digit dengan lima elemen, dua daripadanya diulang. Kemudian, kami memanggil fungsi removeDuplicateElements() untuk mengalih keluar elemen pendua dan mencetak hasilnya.

Apabila kami menjalankan fungsi ujian, tatasusunan dua digit yang mengandungi tiga elemen akan dikeluarkan, dengan elemen pendua dialih keluar.

Artikel ini menerangkan cara memadamkan elemen yang sama dalam tatasusunan dua digit. Kami menggunakan gelung untuk melelaran melalui tatasusunan dan membandingkan setiap elemen untuk melihat sama ada ia sama dengan elemen sebelumnya. Jika ia adalah sama, padamkan elemen semasa. Dengan cara ini, kita boleh mengalih keluar elemen pendua dalam tatasusunan dua digit dengan mudah untuk memastikan data itu unik.

Atas ialah kandungan terperinci Bagaimana untuk memadam elemen yang sama dalam tatasusunan dua dimensi 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