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ı.";
}