Rumah > Artikel > pembangunan bahagian belakang > Ketahui tiga kaedah untuk mendapatkan persilangan berbilang tatasusunan dalam lima minit (Koleksi)
Dalam artikel sebelumnya "Operasi Tatasusunan PHP: Kaedah Pengiraan Hasil Elemen Tatasusunan", pengetahuan yang berkaitan tentang cara mengira hasil darab unsur tatasusunan dalam PHP telah diperkenalkan secara terperinci dalam artikel ini , mari kita lihat PHP Bagaimana untuk membandingkan dua tatasusunan dan kemudian memperoleh pengetahuan yang berkaitan tentang persilangan antara berbilang tatasusunan Saya harap ia akan membantu semua orang!
Dalam artikel sebelumnya kami memperkenalkan cara mengira hasil darab elemen tatasusunan dalam PHP Kita boleh menggunakan fungsi gelung for
, gelung foreach
dan array_product
untuk mengira hasil darab unsur tatasusunan. Kami juga telah menangani isu antara berbilang tatasusunan sebelum ini, seperti menggabungkan tatasusunan Apabila ia datang untuk membaca tatasusunan, kami perlu menyebut operasi yang biasa digunakan dalam PHP, iaitu untuk mendapatkan persilangan berbilang tatasusunan.
Ini ialah perbandingan tatasusunan. Persilangan antara tatasusunan diperoleh dengan membandingkan tatasusunan Jadi kaedah yang boleh digunakan untuk melakukannya? Mari kita lihat seterusnya.
<strong><span style="font-size: 20px;">array_intersect</span></strong>
Fungsi - Bandingkan nilai utama tatasusunan
Terdapat fungsi array_intersect
terbina dalam dalam PHP yang digunakan untuk membandingkan tatasusunan , membandingkan nilai utama tatasusunan, dan kemudian menggunakan elemen tatasusunan untuk mengembalikan nilai kunci dalam kedua-dua tatasusunan, iaitu persilangan dua tatasusunan. Format sintaks asas bagi fungsi
array_intersect
adalah seperti berikut:
array_intersect(array1,array2,array3...);
Perlu diingatkan bahawa tatasusunan parameter123 mewakili bilangan tatasusunan yang digunakan untuk perbandingan, dan tatasusunan 1 ialah digunakan Untuk perbandingan dengan tatasusunan lain, tatasusunan 2 dan 3 kedua-duanya digunakan untuk perbandingan dengan tatasusunan 1. Apabila fungsi membandingkan dua atau lebih tatasusunan, hasil yang dikembalikan ialah tatasusunan persilangan.
Tatasusunan yang dikembalikan hanya mempunyai persilangan tatasusunan 1 dan tatasusunan lain, dan nama kuncinya juga tatasusunan 1. Dengan kata lain, tatasusunan yang dikembalikan ialah sebahagian daripada tatasusunan 1, dan tatasusunan lain hanya menggunakan nilai kunci Bandingkan dengan tatasusunan 1 dan tidak akan muncul dalam tatasusunan yang dikembalikan. Hanya bandingkan nilai utama.
Seterusnya mari kita lihat aplikasi fungsi array_intersect melalui contoh adalah seperti berikut:
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"purple"); $result=array_intersect($a1,$a2); print_r($result); ?>
Hasil keluaran:
<.>
Dalam contoh di atas, dua tatasusunan dibandingkan Seperti yang anda lihat, terdapat dua nilai kunci dalam tatasusunan 1 yang sama dengan tatasusunan 2. Nama kunci dalam hasil output masih. nama kunci tatasusunan 1. Dalam contoh di atas, dua tatasusunan dibandingkan. 🎜 ><?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"blue","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"blue"); $result=array_intersect($a1,$a2,$a3); print_r($result); ?>Seterusnya mari kita lihat fungsi array_intersect_key dalam PHP Ia tidak membandingkan nilai kunci, tetapi membandingkan nama kunci.
array_intersect_key
Fungsi - Bandingkan nama kunci tatasusunan<strong><span style="font-size: 20px;">array_intersect_key</span></strong>
Fungsi sangat serupa dengan fungsi , tetapi kaedah perbandingan adalah berbeza. Fungsi
array_intersect_key
Formatnya adalah seperti berikut: array_intersect
array_intersect_key
array_intersect_key
array_intersect_key(array1,array2,array3...)Hasil yang dikembalikan ialah nilai kunci yang sepadan dalam tatasusunan nama kunci persimpangan 1. Hanya bandingkan nama kunci.
Mari kita lihat penggunaan fungsi
array_intersect
Pertama, mari kita lihat tatasusunan yang tidak mentakrifkan kunci. nama dan hanya menggunakan pengindeksan
array_intersect_key
Hasil keluaran:
<?php $a1=array("red","green","blue","yellow"); $a2=array("red","green","blue"); $result=array_intersect_key($a1,$a2); print_r($result); ?>
Apabila terdapat nama kunci yang mentakrifkan nilai kunci, ia adalah sama, cuma bandingkan nama kuncinya. membandingkan nama kunci untuk mendapatkan persimpangan melalui fungsi
<p>array_intersect_assoc</p>
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"red","f"=>"blue","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"blue"); $result=array_intersect_key($a1,$a2,$a3); print_r($result); ?>Fungsi - Bandingkan nama kunci dan nilai kunci tatasusunan
Seperti di atas Kedua-dua fungsi membandingkan nilai kunci dan nama kunci Kini PHP boleh membandingkan nilai kunci dan nama kunci pada masa yang sama melalui fungsi , yang bermaksud bahawa hasil output mestilah kedua-dua nilai kunci. dan nama kunci adalah sama.
array_intersect_assoc
函数的基本语法格式如下:
array_intersect_assoc(array1,array2,array3...)
其中需要注意的是:参数array123表示的就是第几个用来比较的数组,数组1是用来与其他数组进行比较的,数组2和3都是用来与数组1进行比较的。当函数比较两个或者多个数组的时候,返回的结果就是一个交集数组。
这个返回的交集数组,既然键名和键值都是一样的,返回的结果也就不需要争论什么了。
接下来我们通过示例来看一下array_intersect_assoc
函数的应用,示例如下:
首先我们还是先来看一下没有定义键名,只通过索引进行的数组
<?php $a1=array("red","green","blue","yellow"); $a2=array("red","black","blue"); $a3=array("red"); $result=array_intersect_key($a1,$a2,$a3); print_r($result); ?>
输出结果:
下面我们再来看一下,有自定义键名的数组
<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"red","b"=>"green","g"=>"purple"); $a3=array("a"=>"red","b"=>"green","h"=>"blue"); $result=array_intersect_assoc($a1,$a2,$a3); print_r($result); ?>
输出结果:
这便是在PHP中可以通过array_intersect
函数、array_intersect_key
和array_intersect_assoc
函数分别以不同的方法来获取数组之间的交集。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
Atas ialah kandungan terperinci Ketahui tiga kaedah untuk mendapatkan persilangan berbilang tatasusunan dalam lima minit (Koleksi). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!