Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencari persilangan tatasusunan dalam php

Bagaimana untuk mencari persilangan tatasusunan dalam php

PHPz
PHPzasal
2023-04-26 14:19:224152semak imbas

Array ialah struktur data yang digunakan secara meluas dalam pengaturcaraan PHP adalah keperluan biasa untuk beroperasi pada tatasusunan. Dalam PHP, kita boleh menggunakan beberapa kaedah yang berbeza untuk mencari persilangan dua atau lebih tatasusunan. Artikel ini akan membincangkan dan memperkenalkan topik ini secara terperinci.

Kaedah pertama ialah menggunakan fungsi array_intersect untuk mencari persilangan dua tatasusunan. Fungsi ini mengambil dua atau lebih tatasusunan sebagai argumen dan mengembalikan persilangan elemen dalam tatasusunan ini. Berikut ialah contoh kod menggunakan fungsi array_intersect:

$firstArray = array("apple", "orange", "banana", "pear");
$secondArray = array("pear", "watermelon", "grape", "banana");

$result = array_intersect($firstArray, $secondArray);

print_r($result);

Kod di atas akan mengembalikan tatasusunan yang mengandungi "pisang" dan "pir". Kerana kedua-dua elemen wujud dalam kedua-dua $firstArray dan $secondArray.

Kaedah kedua ialah menggunakan array_values ​​fungsi terbina dalam untuk membongkar nilai dalam tatasusunan persimpangan. Nilai terurai masih merupakan tatasusunan, yang hanya mengandungi nilai bahagian persilangan. Berikut ialah kod sampel menggunakan fungsi array_values:

$firstArray = array("apple", "orange", "banana", "pear");
$secondArray = array("pear", "watermelon", "grape", "banana");

$result = array_intersect($firstArray, $secondArray);

$result = array_values($result);

print_r($result);

Selepas dijalankan ia akan mengembalikan tatasusunan baharu yang mengandungi elemen persilangan, iaitu: "pisang" dan "pir".

Kaedah ketiga ialah menggunakan penyataan gelung foreach untuk lelaran melalui tatasusunan pertama dan semak sama ada elemennya juga wujud dalam tatasusunan kedua. Jika elemen wujud dalam tatasusunan kedua, ia ditambah pada tatasusunan persimpangan. Berikut ialah kod sampel menggunakan pernyataan gelung foreach:

$firstArray = array("apple", "orange", "banana", "pear");
$secondArray = array("pear", "watermelon", "grape", "banana");

$result = array();

foreach ($firstArray as $value) {
    if (in_array($value, $secondArray)) {
        $result[] = $value;
    }
}

print_r($result);

Selepas menjalankan kod ini akan mengembalikan tatasusunan baharu yang mengandungi elemen persimpangan.

Kaedah keempat ialah menggunakan fungsi array_filter untuk menapis persilangan dua tatasusunan. Fungsi ini menerima dua parameter, parameter pertama ialah tatasusunan yang akan ditapis, dan parameter kedua ialah fungsi panggil balik. Fungsi panggil balik akan digunakan untuk menapis tatasusunan dan hanya elemen yang memenuhi kriteria akan dikekalkan. Contoh kod menggunakan fungsi array_filter adalah seperti berikut:

$firstArray = array("apple", "orange", "banana", "pear");
$secondArray = array("pear", "watermelon", "grape", "banana");

$result = array_filter($firstArray, function($item) use ($secondArray) {
    return in_array($item, $secondArray);
});

print_r($result);

Selepas menjalankan kod ini akan mengembalikan tatasusunan baharu yang mengandungi elemen persilangan.

Ringkasnya, terdapat banyak kaedah berbeza yang boleh digunakan untuk mencari persilangan dua tatasusunan. Cara paling mudah ialah menggunakan fungsi array_intersect, dan kemudian gunakan fungsi array_values ​​pada tatasusunan yang dikembalikan untuk memecahkan bahagian persimpangan. Operasi persilangan asas juga boleh dilaksanakan menggunakan pernyataan gelung foreach dan fungsi in_array. Akhir sekali, fungsi array_filter menyediakan kaedah yang lebih maju yang boleh menggunakan fungsi panggil balik untuk melaksanakan operasi persimpangan dan boleh melaraskan peraturan pengiraan persimpangan dengan lebih fleksibel.

Atas ialah kandungan terperinci Bagaimana untuk mencari persilangan 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