Rumah >pembangunan bahagian belakang >tutorial php >Pengenalan kepada penggunaan fungsi array_intersect_key() PHP

Pengenalan kepada penggunaan fungsi array_intersect_key() PHP

王林
王林asal
2023-06-26 23:51:091875semak imbas

Fungsi array_intersect_key() dalam PHP adalah fungsi yang sangat praktikal. Fungsi utamanya adalah untuk membandingkan kekunci dua atau lebih tatasusunan dan mengembalikan tatasusunan baharu yang hanya mengandungi nama kunci dalam semua elemen kewujudan. Artikel ini akan memperkenalkan kepada anda sintaks asas dan penggunaan fungsi array_intersect_key().

1. Sintaks asas fungsi array_intersect_key()

Sintaks asas fungsi array_intersect_key() dalam PHP adalah seperti berikut:

array array_intersect_key ( array $array1 , array $array2 [, array $... ] )

Antaranya, $array1, $array2, dll. ialah pelbagai parameter tatasusunan yang diluluskan dalam.

2. Cara menggunakan fungsi array_intersect_key()

  1. Hanya satu parameter diluluskan

Apabila hanya satu parameter dihantar, fungsi array_intersect_key() tidak akan memprosesnya, tetapi akan mengembalikan tatasusunan kosong secara langsung.

$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS");
$result = array_intersect_key($array1);
print_r($result);  // 输出:Array()
  1. Melepasi dua parameter

Apabila melepasi dua parameter, fungsi array_intersect_key() membandingkan kekunci dua tatasusunan dan mengembalikan tatasusunan baharu yang hanya mengandungi nama kunci yang wujud dalam semua elemen tatasusunan yang diberikan.

$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
$array2 = array("a" => "PHP", "e" => "Python", "f" => "C++", "d" => "JavaScript");
$result = array_intersect_key($array1, $array2);
print_r($result);  // 输出:Array ( [a] => PHP [d] => JavaScript )

Dalam kod di atas, $array1 dan $array2 ialah dua parameter tatasusunan yang dihantar, dan $result ialah tatasusunan baharu yang dikembalikan oleh fungsi ini hanya mengandungi elemen yang nama kuncinya wujud dalam kedua-dua tatasusunan.

  1. Melalui tiga atau lebih parameter

Apabila melepasi tiga atau lebih parameter, fungsi array_intersect_key() adalah sama seperti semasa melepasi dua parameter, kecuali satu atau lebih parameter tatasusunan diluluskan.

$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
$array2 = array("a" => "PHP", "e" => "Python", "f" => "C++", "d" => "JavaScript");
$array3 = array("a" => "PHP", "c" => "CSS", "g" => "Ruby", "d" => "JavaScript");
$result = array_intersect_key($array1, $array2, $array3);
print_r($result);  // 输出:Array ( [a] => PHP [d] => JavaScript )

Dalam kod di atas, $array1, $array2, dan $array3 ialah tiga parameter yang dihantar, dan $result ialah tatasusunan baharu yang dikembalikan oleh fungsi ini hanya mengandungi elemen yang nama kuncinya wujud dalam semua tatasusunan yang diberikan.

3. Contoh aplikasi fungsi array_intersect_key()

  1. Tentukan sama ada tatasusunan mempunyai nilai kunci yang ditentukan

Fungsi array_intersect_key() boleh digunakan untuk menentukan sama ada tatasusunan mempunyai nilai kunci yang ditentukan.

function checkArrayKey($array, $keys) {
    // 将传入的键名转化为数组
    $keys = array_flip((array) $keys);
    // 比较两个数组的键,返回新数组
    $result = array_intersect_key($keys, $array);
    // 判断键值是否相同,如果键值相同则说明数组中拥有该键值
    return count($result) == count($keys);
}

// 示例使用
$myArray = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
echo checkArrayKey($myArray, "a") ? "存在" : "不存在";  // 输出:存在
echo checkArrayKey($myArray, ["a", "b"]) ? "存在" : "不存在";  // 输出:存在
echo checkArrayKey($myArray, ["d", "e"]) ? "存在" : "不存在";  // 输出:不存在

Dalam kod di atas, $myArray ialah parameter tatasusunan masuk Fungsi checkArrayKey() digunakan untuk menentukan sama ada tatasusunan mempunyai nilai kunci yang ditentukan dan menentukan sama ada nilai kunci yang ditentukan wujud berdasarkan nilai pulangan. Mengembalikan benar jika wujud, palsu sebaliknya.

  1. Bandingkan nama kunci biasa dalam berbilang tatasusunan

Anda boleh membandingkan nama kunci biasa dalam berbilang tatasusunan melalui fungsi array_intersect_key().

// 示例使用
$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
$array2 = array("a" => "PHP", "e" => "Python", "f" => "C++", "d" => "JavaScript");
$array3 = array("a" => "PHP", "c" => "CSS", "g" => "Ruby", "d" => "JavaScript");

// 比较多个数组的公共键名
$result = call_user_func_array("array_intersect_key", array($array1, $array2, $array3)); 
print_r($result);  // 输出:Array ( [a] => PHP [d] => JavaScript )

Dalam kod di atas, $array1, $array2 dan $array3 ialah tiga parameter tatasusunan yang diluluskan. Tiga tatasusunan ini boleh dihantar ke fungsi array_intersect_key() dengan menggunakan fungsi call_user_func_array() , yang digunakan untuk membandingkan berbilang tatasusunan. Hasil akhir hanya mengandungi elemen yang nama kuncinya wujud dalam ketiga-tiga tatasusunan.

4. Ringkasan

Melalui pengenalan artikel ini, saya percaya bahawa pembaca telah pun memahami sintaks asas dan kaedah aplikasi fungsi array_intersect_key(). Dalam pembangunan sebenar, jika anda perlu membandingkan nama kunci biasa dalam berbilang tatasusunan atau menentukan sama ada tatasusunan mempunyai nilai kunci yang ditentukan, anda boleh menggunakan fungsi ini untuk melaksanakannya dengan mudah.

Atas ialah kandungan terperinci Pengenalan kepada penggunaan fungsi array_intersect_key() 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