Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Padamkan elemen yang sama dalam dua tatasusunan dalam php

Padamkan elemen yang sama dalam dua tatasusunan dalam php

王林
王林asal
2023-05-19 19:29:36588semak imbas

PHP ialah bahasa pembangunan bahagian pelayan yang popular yang menyokong pelbagai pemprosesan data dan teknologi pengurusan. Antaranya, tatasusunan adalah bahagian penting dalam pengaturcaraan PHP dan boleh mewakili pelbagai struktur data yang kompleks dan koleksi elemen. Katakan kita mempunyai dua tatasusunan A dan B, yang mengandungi beberapa elemen, dan kita ingin melaksanakan fungsi: padamkan elemen yang sama dalam A dan B, iaitu, hanya simpan elemen yang muncul dalam A atau B tetapi bukan kedua-duanya. Di bawah ini kami akan memperkenalkan cara menggunakan PHP untuk mencapai fungsi ini.

1. Asas Tatasusunan

Dalam PHP, tatasusunan ialah struktur data tersusun yang boleh menyimpan berbilang nilai atau pasangan nilai kunci. Operasi biasa pada tatasusunan termasuk menambah, memadam, melintasi dan mengisih. Berikut ialah beberapa fungsi tatasusunan yang biasa digunakan:

• tatasusunan(): Tentukan pembolehubah tatasusunan
• tatasusunan_push(): Tambahkan satu atau lebih elemen pada penghujung tatasusunan; (): Padamkan elemen dari hujung tatasusunan;
• array_shift(): Padamkan elemen daripada kepala tatasusunan
• array_unshift(): Tambahkan satu atau lebih elemen pada kepala tatasusunan ;
• array_slice(): Ekstrak subset daripada array;
• array_merge(): gabungkan dua atau lebih array;

2. Deduplikasi tatasusunan

Sebelum melaksanakan fungsi memadam elemen yang sama, kita perlu mempertimbangkan cara untuk mengalih keluar elemen pendua dalam tatasusunan. PHP menyediakan array_unique() fungsi terbina dalam, yang boleh melaksanakan operasi penyahduplikasian. Sintaks fungsi ini adalah seperti berikut:

array_unique(array $array [, int $sort_flags = SORT_STRING]): array

Antaranya, parameter $array mewakili pembolehubah tatasusunan yang akan diduakan, dan parameter $sort_flags Menunjukkan kaedah pengisihan. Jika terdapat berbilang nilai yang sama, hanya nilai pertama akan dikekalkan selepas penyahduaan dan kedudukan nilai yang dikekalkan akan kekal tidak berubah. Berikut ialah contoh:

$a = array(1, 2, 3, 2, 4, 3);
$b = array_unique($a); // $b = [1, 2, 3, 4]

3. Padamkan elemen yang sama

Sekarang setelah kita tahu cara menyahduplikasi tatasusunan, kita akan menggunakan contoh untuk menunjukkan cara memadamkan elemen yang sama. Katakan kita mempunyai dua tatasusunan A dan B yang unsur-unsurnya adalah daripada jenis yang sama dan mempunyai bilangan unsur pendua yang tidak ditentukan. Kami ingin melaksanakan fungsi diff() yang mengambil dua tatasusunan sebagai parameter dan mengembalikan tatasusunan yang mengandungi unsur-unsur yang hanya wujud dalam satu tatasusunan, iaitu, mengalih keluar elemen yang sama dalam A dan B.

Kaedah 1: Gunakan fungsi array_diff()

PHP menyediakan fungsi array_diff(), yang boleh mengembalikan perbezaan antara dua atau lebih tatasusunan. Sintaks fungsi ini adalah seperti berikut:

array_diff(array $array1, array $array2 [, array $...]): array

Array yang dikembalikan oleh fungsi ini terkandung dalam $array1 tetapi bukan Semua elemen dalam $array2. Jika berbilang tatasusunan diberikan, tatasusunan yang dikembalikan mengandungi elemen yang tiada dalam mana-mana tatasusunan berikut. Berikut adalah contoh:

$a = array(1, 2, 3, 4, 5);
$b = array(4, 5, 6, 7);
$result = array_diff($a, $b); // $result = [1, 2, 3]

Kita boleh menggunakan hasil fungsi ini kepada A dan B untuk mendapatkan elemen yang hanya wujud dalam satu tatasusunan:

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $diff_a = array_diff($unique_a, $unique_b);
    $diff_b = array_diff($unique_b, $unique_a);
    return array_merge($diff_a, $diff_b);
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]

Daripada ini kita boleh menggunakan array_diff( ) untuk mendapatkan perbezaan antara dua tatasusunan, dan kemudian menggabungkan perbezaan bersama-sama.

Kaedah 2: Gunakan gelung foreach

Selain menggunakan fungsi terbina dalam, kita juga boleh memadamkan elemen yang sama dengan merentasi dua tatasusunan. Khususnya, kita boleh menyahduakan dua tatasusunan dahulu, kemudian mengulangi salah satu tatasusunan, dan untuk setiap elemen di dalamnya, jika elemen itu tiada dalam tatasusunan yang lain, tambahkan elemen itu kepada tatasusunan yang terhasil. Berikut ialah contoh:

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $result = array();
    foreach ($unique_a as $x) {
        if (!in_array($x, $unique_b)) {
            $result[] = $x;
        }
    }
    foreach ($unique_b as $y) {
        if (!in_array($y, $unique_a)) {
            $result[] = $y;
        }
    }
    return $result;
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]

Daripada ini, kita boleh menggunakan gelung foreach untuk lelaran melalui tatasusunan, dan untuk setiap elemen, gunakan fungsi in_array() untuk menyemak sama ada elemen itu wujud dalam tatasusunan lain, jika tidak maka ditambahkan pada tatasusunan hasil.

4. Ringkasan

PHP ialah bahasa pengaturcaraan yang berkuasa, yang mana tatasusunan merupakan komponen penting. Artikel ini memperkenalkan cara menggunakan PHP untuk memadamkan elemen yang sama bagi dua tatasusunan, termasuk menggunakan fungsi terbina dalam dan merentasi tatasusunan. Kita boleh memilih kaedah yang berbeza mengikut keperluan sebenar untuk mencapai hasil yang terbaik. Saya harap artikel ini akan membantu pembaca memahami penggunaan asas tatasusunan PHP.

Atas ialah kandungan terperinci Padamkan elemen yang sama dalam dua tatasusunan 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