Dalam PHP, tatasusunan ialah jenis data yang sangat biasa dan praktikal, yang membolehkan pembangun menyimpan sejumlah besar data dan boleh mengindeks serta mengakses data melalui pasangan nilai kunci. Walau bagaimanapun, apabila menggunakan tatasusunan, kita sering menghadapi situasi di mana kita perlu menentukan sama ada kekunci tatasusunan diulang, kerana jika kekunci itu diulang, ia akan menyebabkan data ditulis ganti atau pengecualian.
Jadi, bagaimana untuk menentukan sama ada kunci dalam tatasusunan PHP diulang? Artikel ini akan menerangkannya kepada anda secara terperinci.
1. Gunakan fungsi array_key_exists()
Fungsi array_key_exists() ialah fungsi terbina dalam PHP, digunakan untuk menentukan sama ada kunci wujud dalam tatasusunan. Penggunaannya adalah seperti berikut:
if (array_key_exists("key", $array)) { //键存在于数组中 } else { //键不存在于数组中 }
Apabila menentukan sama ada kekunci tatasusunan diulang, kita boleh menggelung melalui tatasusunan dan menggunakan fungsi tatasusunan_key_exists() untuk menentukan sama ada setiap kunci sudah wujud dalam tatasusunan. Jika ada, kunci diduakan. Kod sampel adalah seperti berikut:
function has_duplicate_key($array){ $keys = array(); // 定义一个空数组,存储数组键 foreach ($array as $key => $value) { if (array_key_exists($key, $keys)) { return true; // 如果键已经存在,说明有重复键 } $keys[$key] = true; // 把数组键存入$keys数组中 } return false; // 没有重复键 }
2. Gunakan fungsi in_array()
Jika kita hanya perlu menentukan sama ada kunci wujud dalam tatasusunan dan tidak peduli sama ada kunci itu diulang, maka kita Anda boleh menggunakan fungsi in_array(). Penggunaannya adalah seperti berikut:
if (in_array("key", $array)) { //键存在于数组中 } else { //键不存在于数组中 }
3 Gunakan fungsi array_unique()
Jika kita perlu mengalih keluar kunci pendua dalam tatasusunan, kita boleh menggunakan fungsi array_unique(). Kod sampel adalah seperti berikut:
$array = array("key1" => "value1", "key2" => "value2", "key1" => "value3"); $array = array_unique($array, SORT_REGULAR); print_r($array);
Gunakan fungsi array_unique() untuk mengalih keluar pendua Anda hanya boleh menyimpan kunci yang muncul buat kali pertama dan kunci pendua seterusnya akan dipadamkan. Jika anda perlu mengekalkan kejadian terakhir kunci, anda boleh menggunakan fungsi array_reverse() untuk membalikkan tatasusunan, dan kemudian gunakan fungsi array_unique().
$array = array("key1" => "value1", "key2" => "value2", "key1" => "value3"); $array = array_reverse($array, true); $array = array_unique($array, SORT_REGULAR); $array = array_reverse($array, true); print_r($array);
4. Gunakan fungsi count()
Selain itu, kita juga boleh menggunakan fungsi count() untuk menentukan sama ada terdapat kunci pendua dalam tatasusunan. Kod sampel adalah seperti berikut:
function has_duplicate_key($array){ return count($array) != count(array_unique(array_keys($array))); }
Dalam kod ini, kami menggunakan fungsi array_keys() untuk mendapatkan semua kunci array, dan menggunakan fungsi array_unique() untuk mengalih keluar pendua. Jika panjang tatasusunan selepas penyahduplikasian tidak konsisten dengan panjang tatasusunan asal, ini bermakna terdapat kunci pendua dalam tatasusunan.
Ringkasan
Artikel ini terutamanya memperkenalkan beberapa kaedah untuk menentukan sama ada kekunci diulang dalam tatasusunan PHP, termasuk fungsi array_key_exists(), in_array() fungsi, array_unique() fungsi dan count() fungsi. Apabila menulis kod, pembangun boleh memilih kaedah yang paling sesuai untuk menentukan sama ada kunci dalam tatasusunan diulang berdasarkan situasi sebenar.
Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada kunci diulang dalam tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!