Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membuat pertanyaan dalam php sama ada tatasusunan mengandungi pasangan nilai kunci tertentu

Bagaimana untuk membuat pertanyaan dalam php sama ada tatasusunan mengandungi pasangan nilai kunci tertentu

PHPz
PHPzasal
2023-04-23 09:14:49656semak imbas

Dalam proses membangunkan aplikasi web, PHP, sebagai bahasa pengaturcaraan yang berkuasa, digunakan secara meluas. Tatasusunan PHP juga merupakan struktur data yang sangat berguna yang boleh kita gunakan untuk menyimpan dan memanipulasi data.

Dalam banyak kes, kita perlu mengetahui sama ada pasangan nilai kunci tertentu wujud dalam tatasusunan. Oleh itu, artikel ini akan menumpukan pada masalah ini dan memperkenalkan beberapa kaedah dan teknik untuk bertanya sama ada tatasusunan mempunyai pasangan nilai kunci tertentu dalam PHP.

Kaedah 1: Gunakan fungsi in_array()

Fungsi in_array() dalam PHP boleh digunakan untuk menentukan sama ada nilai berada dalam tatasusunan. Oleh itu, jika kita ingin mengetahui sama ada pasangan nilai kunci tertentu wujud dalam tatasusunan, kita boleh menukar pasangan nilai kunci yang ditentukan kepada rentetan, dan kemudian tentukan sama ada rentetan itu berada dalam tatasusunan.

Sebagai contoh, kita mempunyai tatasusunan $arr, yang pasangan nilai kuncinya ialah:

$pairs = array(
    'name' => 'Tom',
    'age' => 18,
    'gender' => 'male'
);

Kemudian, kita perlu bertanya sama ada nama kunci 'nama' dan nilai kunci wujud dalam tatasusunan ini ialah pasangan nilai kunci 'Tom'. Kita boleh menulis kod seperti berikut:

$needle = 'name=Tom';
$exists = in_array($needle, $arr);

Di sini, kita menggunakan pembolehubah $needle untuk menyimpan rentetan pasangan nilai kunci, dan menggunakan fungsi in_array() untuk mencari rentetan dalam $arr tatasusunan . Mengembalikan benar jika $needle berada dalam tatasusunan jika tidak, mengembalikan palsu.

Perlu diingatkan bahawa kelemahan kaedah ini ialah jika pemisah antara nama kunci dan nilai kunci wujud dalam data, ia tidak boleh dinilai dengan betul. Sebagai contoh, jika elemen dengan nilai 'name=Tom' dan elemen dengan nilai 'name=Tomz' kedua-duanya dalam tatasusunan, anda tidak boleh membezakannya dengan tepat dengan cara ini.

Kaedah 2: Gunakan fungsi array_key_exists()

Fungsi array_key_exists() dalam PHP boleh digunakan untuk menentukan sama ada nama kunci wujud dalam tatasusunan. Oleh itu, jika kita ingin mengetahui sama ada pasangan nilai kunci tertentu wujud dalam tatasusunan, kita boleh menukar nama kunci yang ditentukan kepada rentetan dan menggunakan fungsi ini untuk menentukan sama ada nama kunci berada dalam tatasusunan.

Sebagai contoh, kita mempunyai tatasusunan $arr, yang pasangan nilai kuncinya ialah:

$pairs = array(
    'name' => 'Tom',
    'age' => 18,
    'gender' => 'male'
);

Kemudian, kita perlu bertanya sama ada nama kunci 'nama' dan nilai kunci wujud dalam tatasusunan ini ialah pasangan nilai kunci 'Tom'. Kita boleh menulis kod seperti berikut:

$key = 'name';
$value = 'Tom';
$exists = array_key_exists($key, $arr) && $arr[$key] == $value;

Di sini, kita menggunakan pembolehubah $key untuk menyimpan nama kunci, dan menggunakan fungsi array_key_exists() untuk menentukan sama ada nama kunci wujud dalam tatasusunan $arr. Jika nama kunci wujud, tentukan sama ada nilai kunci yang sepadan dengan nama kunci adalah sama dengan pembolehubah $value.

Perlu diambil perhatian bahawa kaedah ini hanya boleh menentukan sama ada nama kunci dalam pasangan nilai kunci wujud, tetapi tidak boleh menentukan sama ada gabungan nama kunci dan nilai kunci wujud. Jika anda perlu menentukan sama ada nama kunci dan nilai kunci berada dalam tatasusunan pada masa yang sama, anda perlu menggunakan kaedah lain.

Kaedah 3: Gunakan fungsi array_search()

Fungsi array_search() dalam PHP boleh digunakan untuk mencari nama kunci nilai yang ditentukan dalam tatasusunan. Oleh itu, jika kita ingin mengetahui sama ada pasangan nilai kunci tertentu wujud dalam tatasusunan, kita boleh menggunakan fungsi ini untuk mencari nama kunci pasangan nilai kunci dalam tatasusunan dan menentukan sama ada nama kunci yang betul dikembalikan.

Sebagai contoh, kita mempunyai tatasusunan $arr, yang pasangan nilai kuncinya ialah:

$pairs = array(
    'name' => 'Tom',
    'age' => 18,
    'gender' => 'male'
);

Kemudian, kita perlu bertanya sama ada nama kunci 'nama' dan nilai kunci wujud dalam tatasusunan ini ialah pasangan nilai kunci 'Tom'. Kita boleh menulis kod seperti berikut:

$key = 'name';
$value = 'Tom';
$exists = array_search($value, $arr) == $key;

Di sini, kita menggunakan pembolehubah $key untuk menyimpan nama kunci, dan menggunakan fungsi array_search() untuk mencari $value dalam tatasusunan $arr. Jika nama kunci yang dicari adalah sama dengan pembolehubah $key, ini menunjukkan bahawa gabungan nama kunci dan nilai kunci wujud dalam tatasusunan.

Perlu diambil perhatian bahawa kaedah ini hanya boleh menentukan sama ada gabungan nama kunci dan nilai kunci berada dalam tatasusunan, tetapi tidak boleh menentukan sama ada nama kunci dan nilai kunci masing-masing berada dalam tatasusunan.

Ringkasan

Untuk bertanya sama ada pasangan nilai kunci tertentu wujud dalam tatasusunan dalam PHP, anda boleh menggunakan fungsi in_array(), array_key_exists() dan fungsi array_search(). Setiap daripada tiga kaedah ini mempunyai kelebihan dan kekurangannya sendiri, dan perlu dipilih mengikut senario aplikasi tertentu. Pada masa yang sama, untuk memastikan ketepatan operasi kod, ia juga perlu untuk mengelakkan situasi di mana pemisah antara nama kunci dan nilai kunci wujud dalam data.

Atas ialah kandungan terperinci Bagaimana untuk membuat pertanyaan dalam php sama ada tatasusunan mengandungi pasangan nilai kunci tertentu. 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