Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk memadam persimpangan tatasusunan dalam php
Memadamkan persimpangan tatasusunan ialah tugas biasa dalam PHP. Intersection ialah nilai yang biasa dalam dua atau lebih tatasusunan. Dalam sesetengah kes, kita mungkin perlu mengalih keluar persimpangan daripada satu atau lebih tatasusunan untuk melaksanakan operasi atau perbandingan tertentu padanya. Artikel ini akan memperkenalkan beberapa kaedah, bersama dengan kebaikan dan keburukan mereka, untuk membantu anda menyelesaikan tugas ini.
Kaedah 1: Gunakan fungsi array_diff
PHP mempunyai fungsi terbina dalam dipanggil array_diff, yang boleh mengembalikan elemen dalam satu tatasusunan yang wujud dalam tatasusunan lain atau berbilang. Kita boleh menggunakan fungsi ini untuk mengalih keluar persilangan antara dua atau lebih tatasusunan.
$arr1 = array(1, 2, 3, 4, 5); $arr2 = array(3, 4, 5, 6, 7); $result = array_diff($arr1, $arr2); print_r($result); // [1, 2]
Dalam contoh di atas, kami menggunakan fungsi array_diff untuk mendapatkan elemen dalam $arr1 yang tidak wujud dalam $arr2. Ini bermakna persimpangan telah dialih keluar.
Kelebihan:
Kelemahan:
Kaedah 2: Gunakan gelung foreach
Kaedah lain ialah menggunakan gelung foreach. Idea kaedah ini adalah untuk mengulangi tatasusunan pertama dan memeriksa sama ada setiap elemennya terdapat dalam tatasusunan lain. Jika ada, elemen itu dialih keluar daripada tatasusunan pertama.
$arr1 = array(1, 2, 3, 4, 5); $arr2 = array(3, 4, 5, 6, 7); foreach ($arr1 as $key => $value) { if (in_array($value, $arr2)) { unset($arr1[$key]); } } print_r($arr1); // [1, 2]
Dalam contoh di atas, kami menggunakan gelung foreach untuk melintasi $arr1 dan menggunakan fungsi in_array untuk menyemak sama ada elemen semasa wujud dalam $arr2. Jika ada, elemen dialih keluar daripada $arr1 menggunakan fungsi unset.
Kelebihan:
Kelemahan:
Kaedah 3: Gunakan fungsi array_filter
Kaedah lain ialah menggunakan fungsi array_filter. Fungsi ini menapis elemen dalam tatasusunan berdasarkan set peraturan. Kita boleh menentukan fungsi panggil balik yang menyemak sama ada setiap elemen dalam tatasusunan wujud dalam tatasusunan lain. Jika ada, elemen itu dikeluarkan.
$arr1 = array(1, 2, 3, 4, 5); $arr2 = array(3, 4, 5, 6, 7); $callback = function($value) use ($arr2) { return !in_array($value, $arr2); }; $result = array_filter($arr1, $callback); print_r($result); // [1, 2]
Dalam contoh di atas, kami menggunakan fungsi array_filter dan fungsi panggil balik untuk mendapatkan elemen dalam $arr1 yang tidak terdapat dalam $arr2. Fungsi panggil balik menggunakan pernyataan penggunaan untuk menghantar $arr2 kepadanya.
Kelebihan:
Kelemahan:
Ringkasnya, jika anda hanya perlu mengalih keluar persilangan antara dua tatasusunan, menggunakan fungsi array_diff adalah yang paling pantas. Jika anda perlu mengalih keluar persimpangan daripada berbilang tatasusunan, menggunakan gelung foreach atau fungsi array_filter ialah pilihan yang lebih baik. Bergantung pada keperluan anda, pilih kaedah yang paling sesuai untuk menyelesaikan tugas.
Atas ialah kandungan terperinci Bagaimana untuk memadam persimpangan tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!