melihonline adlı üyeden alıntı
Merhaba arkadaşlar. Aşağıdakine benzer kodlarım var. Döngüye sokuyorum. a değişkeni sürekli artarak b değişkeni ile eşitlik olup olmadığına bakıyorum. Sıra Bilgisayar / Yazılım elemanına geldiğinde eşitlik bulamıyor. $b nin içinde o değer kesin var. Ama bulamıyor boş dönüyor. Ben slas işaretinden olur diye düşünüyorum. Sizce de öyle ise bu sorunu nasıl aşabilirim?
$a = array(PHP, ASP, Bilgisayar / Yazılım, CSS);
if ($b == $a) {
echo....
}
Sorununuzun nedeni, /
karakterinin bir özel karakter olduğu ve dizelerin içinde kullanıldığında genellikle özel bir anlama sahip olduğudur. Bu nedenle, dizi içinde /
karakteri bulunan bir öğeyi doğrudan karşılaştırırken bu karakteri dikkate almanız gerekir. Aksi takdirde, /
karakteri diziyi ayrılmış iki öğeye bölecektir.
Bu şekilde, /
karakteri içeren öğeleri karşılaştırırken her öğeyi ayrı ayrı kontrol edebilirsiniz. in_array
fonksiyonu, belirtilen öğenin dizide bulunup bulunmadığını kontrol eder.
Bu sorunu aşmak için, dizi içindeki öğeleri doğru şekilde karşılaştırmak için PHP'nin in_array
fonksiyonunu kullanabilirsiniz. İşte örnek bir kod:
$a = array("PHP", "ASP", "Bilgisayar / Yazılım", "CSS");
$b = "Bilgisayar / Yazılım";
if (in_array($b, $a)) {
echo "Eşleşme bulundu.";
} else {
echo "Eşleşme bulunamadı.";
}