<?php
$a = array(4, 5);
if (array_intersect($id_cart, $a) && array_diff($id_cart, $a))
{
echo "Yes\n";
} else {
echo "No\n";
}
Test:
- 4,5: Hayır
- 4,6: Evet
- 5,6: Evet
- 6,8: Hayır
- 4,5,6,8,12,14: Evet
array_intersect()
and array_diff()
a> bakın.
Ne değer meydana eğer sonuç boş olurdu çünkü, 4 veya 5 ya da varlığı için array(4,5)
testleri ile kesişir $id_cart
.
Hiçbir değer ancak 4 veya 5 oluşmuşsa sonuç boş olurdu çünkü, 4 ve 5 dışında başka bir değerin varlığı için array(4,5)
testleri ile Diff $id_cart
.
count()
boş olmayan bir dizi test etmek için kullanılması gereksizdir. Boş bir dizi bir durumda false
olarak değerlendirir.
Basitlik veya verimliliği hakkında Adriano'nun Yorumlarınız Re: PHP bu şekilde zor. Bazı fonksiyonlar diğerlerinden daha verimli, yani bu 2 fonksiyonu 3 daha iyidir aramaları benim çözüm ve Adriano adlı iki çalışan, ve kullanarak geçen zamanı ölçmek çalıştı söylemek zor microtime()
.:
- Bill'in çözüm: 100000 tekrarlamalar için 6.25 saniye
- Adriano'nun çözüm: 100000 tekrarlamalar için 5.59 saniye
Yani eşit değiliz, ama Adriano tek% 10,5 daha hızlıdır. Ben okunabilirliği yerine performans için için bir çözüm seçsin yeter kapatın. Optimum performans kişinin yüksek öncelik olsaydı, bir ilk etapta PHP kullanarak olmaz. :-)
FWIW kullanarak Adriano diğer çözüm foreach
100000 tekrarlamalar için 7.13 saniye sürmüştür.