Apakah mungkin memiliki array dengan kunci yang identik? Bukankah nilai kedua akan menimpa yang asli?
Citricguy
47
Menggunakan:in_array()
$search_array = array('user_from','lucky_draw_id','prize_id');if(in_array('prize_id', $search_array)){
echo "The 'prize_id' element is in the array";}
Berikut adalah keluarannya:The 'prize_id' element is in the array
Menggunakan:array_key_exists()
$search_array = array('user_from','lucky_draw_id','prize_id');if(array_key_exists('prize_id', $search_array)){
echo "The 'prize_id' element is in the array";}
Tidak ada keluaran
Kesimpulannya, array_key_exists()tidak bekerja dengan array sederhana. Ini hanya untuk menemukan apakah kunci array ada atau tidak. Gunakan in_array()sebagai gantinya.
Berikut lebih banyak contoh:
<?php
/**++++++++++++++++++++++++++++++++++++++++++++++
* 1. example with assoc array using in_array
*
* IMPORTANT NOTE: in_array is case-sensitive
* in_array — Checks if a value exists in an array
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a'=>'bla','b'=>'omg');if(in_array('omg', $something)){
echo "|1| The 'omg' value found in the assoc array ||";}/**++++++++++++++++++++++++++++++++++++++++++++++
* 2. example with index array using in_array
*
* IMPORTANT NOTE: in_array is case-sensitive
* in_array — Checks if a value exists in an array
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('bla','omg');if(in_array('omg', $something)){
echo "|2| The 'omg' value found in the index array ||";}/**++++++++++++++++++++++++++++++++++++++++++++++
* 3. trying with array_search
*
* array_search — Searches the array for a given value
* and returns the corresponding key if successful
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a'=>'bla','b'=>'omg');if(array_search('bla', $something)){
echo "|3| The 'bla' value found in the assoc array ||";}/**++++++++++++++++++++++++++++++++++++++++++++++
* 4. trying with isset (fastest ever)
*
* isset — Determine if a variable is set and
* is not NULL
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a'=>'bla','b'=>'omg');if($something['a']=='bla'){
echo "|4| Yeah!! 'bla' found in array ||";}/**
* OUTPUT:
* |1| The 'omg' element value found in the assoc array ||
* |2| The 'omg' element value found in the index array ||
* |3| The 'bla' element value found in the assoc array ||
* |4| Yeah!! 'bla' found in array ||
*/?>
array_key_exists()memeriksa kunci array sedangkan yang terakhir $search_arrayberisi array asosiatif. Tidak diragukan lagi itu tidak akan berhasil. Anda harus array_flip()melakukannya dulu.
Saya tidak mengerti maksud dari jawaban ini. Bagaimana cara mencapai tujuan pemeriksaan nilai indeks?
Brad Koch
Pertanyaan bagus. Ini tidak menjawab pertanyaan sama sekali, seperti yang tertulis. Saya tidak ingat, tetapi karena saya menjawab sekitar 3 menit setelah pertanyaan awalnya diajukan, saya kira OP mengedit pertanyaan asli mereka untuk membuatnya lebih jelas, dalam cutoff edit awal sebelum didaftarkan sebagai edit. Jika itu masuk akal.
gema
5
Anda bisa menguji apakah sebuah array memiliki elemen tertentu atau tidak dengan isset () atau terkadang bahkan lebih baik array_key_exists () (dokumentasi menjelaskan perbedaannya). Jika Anda tidak dapat memastikan apakah array memiliki elemen dengan indeks 'say' Anda harus mengujinya terlebih dahulu atau Anda mungkin mendapatkan pesan 'peringatan: indeks tidak terdefinisi ....'.
Adapun untuk menguji apakah nilai elemen sama dengan string Anda dapat menggunakan == atau (sekali lagi terkadang lebih baik) operator identitas === yang tidak mengizinkan juggling tipe .
array_key_exists selalu merupakan solusi yang lebih baik
AjayR
5
in_array () baik-baik saja jika Anda hanya memeriksa tetapi jika Anda perlu memeriksa bahwa ada nilai dan mengembalikan kunci terkait, array_search adalah opsi yang lebih baik.
$data =['hello','world'];
$key = array_search('world', $data);if($key){
echo 'Key is '. $key;}else{
echo 'Key not found';}
Jawaban yang lebih baik biasanya berisi penjelasan selain kode. Saya yakin hal itu akan meningkatkan jawaban Anda!
amit
1
Pertama-tama, array asosiatif hanya dapat memiliki kunci yang ditentukan sekali, jadi array ini tidak akan pernah ada. Jika tidak, gunakan saja in_array()untuk menentukan apakah elemen larik spesifik itu ada dalam larik solusi yang memungkinkan.
Jawaban:
Menggunakan
if
?Btw, Anda menetapkan nilai dengan kunci
say
dua kali, maka array Anda akan menghasilkan array dengan hanya satu nilai.sumber
Anda bisa menggunakan fungsi in_array PHP
sumber
Menggunakan:
in_array()
Berikut adalah keluarannya:
The 'prize_id' element is in the array
Menggunakan:
array_key_exists()
Tidak ada keluaran
Kesimpulannya,
array_key_exists()
tidak bekerja dengan array sederhana. Ini hanya untuk menemukan apakah kunci array ada atau tidak. Gunakanin_array()
sebagai gantinya.Berikut lebih banyak contoh:
Disini adalah
PHP DEMO
sumber
array_key_exists()
memeriksa kunci array sedangkan yang terakhir$search_array
berisi array asosiatif. Tidak diragukan lagi itu tidak akan berhasil. Anda harusarray_flip()
melakukannya dulu.Kamu bisa memakai:
array_search()
in_array()
array_flip()
danarray_key_exists()
sumber
Untuk memeriksa apakah indeks sudah ditentukan:
isset($something['say'])
sumber
Anda bisa menguji apakah sebuah array memiliki elemen tertentu atau tidak dengan isset () atau terkadang bahkan lebih baik array_key_exists () (dokumentasi menjelaskan perbedaannya). Jika Anda tidak dapat memastikan apakah array memiliki elemen dengan indeks 'say' Anda harus mengujinya terlebih dahulu atau Anda mungkin mendapatkan pesan 'peringatan: indeks tidak terdefinisi ....'.
Adapun untuk menguji apakah nilai elemen sama dengan string Anda dapat menggunakan == atau (sekali lagi terkadang lebih baik) operator identitas === yang tidak mengizinkan juggling tipe .
sumber
in_array () baik-baik saja jika Anda hanya memeriksa tetapi jika Anda perlu memeriksa bahwa ada nilai dan mengembalikan kunci terkait, array_search adalah opsi yang lebih baik.
Ini akan mencetak "Key is 1"
sumber
Cukup gunakan fungsi PHP
array_key_exists()
sumber
sumber
Pertama-tama, array asosiatif hanya dapat memiliki kunci yang ditentukan sekali, jadi array ini tidak akan pernah ada. Jika tidak, gunakan saja
in_array()
untuk menentukan apakah elemen larik spesifik itu ada dalam larik solusi yang memungkinkan.sumber
Penggunaan lain dari in_array in_array () dengan array sebagai needle
sumber
. yaitu
Anda dapat menggunakan fungsi ini
Pemakaian:
sumber