Bagaimana cara memeriksa beberapa nilai, seperti:
$arg = array('foo','bar');
if(in_array('foo','bar',$arg))
Itu adalah contoh agar Anda mengerti sedikit lebih baik, saya tahu itu tidak akan berhasil.
Persimpangan target dengan tumpukan jerami dan pastikan persimpangan tepat sama dengan target:
$haystack = array(...);
$target = array('foo', 'bar');
if(count(array_intersect($haystack, $target)) == count($target)){
// all of $target is in $haystack
}
Perhatikan bahwa Anda hanya perlu memverifikasi bahwa ukuran perpotongan yang dihasilkan berukuran sama dengan larik nilai target untuk dikatakan $haystack
sebagai superset $target
.
Untuk memverifikasi bahwa setidaknya satu nilai $target
juga masuk $haystack
, Anda dapat melakukan pemeriksaan ini:
if(count(array_intersect($haystack, $target)) > 0){
// at least one of $target is in $haystack
}
Sebagai pengembang, Anda mungkin harus mulai mempelajari operasi set (perbedaan, gabungan, persimpangan). Anda dapat membayangkan array Anda sebagai satu "set", dan kunci yang Anda cari untuk yang lain.
Periksa apakah SEMUA jarum ada
Periksa apakah SALAH SATU jarum ada
sumber
sumber
Keluar dari jawaban @Rok Kralj (IMO terbaik) untuk memeriksa apakah ada jarum yang ada di tumpukan jerami, Anda dapat menggunakan
(bool)
alih-alih!!
yang terkadang dapat membingungkan selama peninjauan kode.https://glot.io/snippets/f7dhw4kmju
sumber
Solusi IMHO Mark Elliot yang terbaik untuk masalah ini. Jika Anda perlu membuat operasi perbandingan yang lebih kompleks antara elemen array DAN Anda menggunakan PHP 5.3, Anda mungkin juga berpikir tentang sesuatu seperti berikut:
Ini bergantung pada penutupan; fungsi perbandingan bisa menjadi jauh lebih kuat. Semoga berhasil!
sumber
array_intersect () mengembalikan larik yang berisi semua nilai larik1 yang ada di semua argumen. Perhatikan bahwa kunci dipertahankan.
Mengembalikan larik yang berisi semua nilai dalam larik1 yang nilainya ada di semua parameter.
kosong () - Tentukan apakah suatu variabel kosong
Menampilkan FALSE jika var ada dan memiliki nilai bukan kosong, bukan nol. Jika tidak, mengembalikan TRUE.
sumber