Dizi Içinde Arama Yapmak
.png)
Bu yazımızda PHP nin bir fonksiyonunu ele alacağız. Benim de zaman zaman ihtiyaç duyduğum bu fonksiyonun bilgileri aşağıdaki gibidir.
Fonksiyon adı : in_array();
Aldığı parametreler :
- Arayacağımız değer,
- İçinde arama yapacağımız dizi,
- TRUE (bunu açıklayacağım)
Fonksiyonun işlevi : Bu fonksiyon istediğiniz dizi içinde yine sizin istediğiniz bir sayı ya da kelimeyi aramaya yarar. Aradığınız sayı ya da kelime varsa TRUE değerini dönderir. Yok ise FALSE değerini dönderir. Örneklerle açıklamaya çalışalım.
"test.php" isminde bir dosya oluşturuyorum ve içine aşağıdaki kodları yazıp çalıştırıyorum.
test.php
<?php
$dizimiz = array("Adana", "Istanbul", "Kayseri", "Hatay");
if(in_array("Kayseri", $dizimiz)){
echo "Kayseri kelimesi dizi icinde var.";
}else{
echo "Kayseri kelimesi dizi icinde bulunamadi.";
}
?>
Bu dosyayı çalıştırdığımızda karşımıza çıkacak sonuç şu şekildedir.
=> Kayseri kelimesi dizi icinde var.
Yine "test.php" dosyamı açıyorum ve içine aşağıdaki kodları yazıp deniyorum.
test.php
<?php
$dizimiz = array("14", "15", "16", 16);
if(in_array(16, $dizimiz, TRUE)){
echo "Integer tipindeki 16 sayisi dizi icinde var.";
}else{
echo "Integer tipindeki 16 sayisi dizi icinde bulunamadi.";
}
?>
Öncelikle dizi içindeki ifadelere dikkat etmenizi istiyorum. Bildiğiniz gibi PHP'de çift tırnak içinde yazılan ifadeler String tipindedir. Çift tırnak olamadan yazılan sayılar ise Integer tipindedir. Bizim dizimizde iki tane 16 sayısı vardır. Ancak bir tanesi String tiptedir, diğeri de Integer tiptedir. Biz bu ikisini birbirinden ayırabilmek için in_array() fonksiyonunun üçüncü parametresini kullanırız. Eğer üçüncü parametreyi TRUE yaparsak fonksiyon bizim için aradığımız değerin türüne göre arama yapar. Aradığımız değer var ise ve türüde uyuyorsa TRUE döndürür.
Biz örneğimizde Integer tipteki 16 sayısını arattık. in_array() fonksiyonunun üçüncü parametresini de TRUE yaptık. Fonksiyon dizinin içine baktı ve iki tane 16 gördü. Üçüncü sayımızın tipine baktı ve String olduğu için bunu olumsuz olarak değerlendirdi. Son sayımızın tipi Integer olduğu için TRUE döndürdü. Ekran çıktısı şu şekilde olacaktır.
=> Integer tipindeki 16 sayisi dizi icinde var.
Son olarak bunun sağlamasını da yapalım konuyu kapatalım. Aşağıdaki kodları "test.php" içine yazın ve çalıştırın.
test.php
<?php
$dizimiz = array("14", "15", "16");
if(in_array(16, $dizimiz)){
echo "16 sayisi dizi icinde var.";
}else{
echo "16 sayisi dizi icinde bulunamadi.";
}
?>
Gördüğünüz gibi TRUE ifadesini kaldırıp Integer 16 sayısını arattığımda fonksiyon bana TRUE değerini döndürdü. Çünkü değerin tipine bakmadan arama yaptı ve dizi içindeki 16 sayısını buldu. Bu sayının türü String olmasına rağmen in_array() fonksiyonunun üçüncü parametresini çalıştırmadığım için TRUE döndürdü.
Ekran çıktısı şu şekilde olur.
=> 16 sayisi dizi icinde var.
Ekran çıktısı şu şekilde olur.
=> 16 sayisi dizi icinde var.
Görüşmek üzere
Yorumlar
Yorum Gönder