Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.

"PHP array_search() Fonksiyonu: Nedir, Ne İşe Yarar ve Nasıl Kullanılır?"
1. array_search()
Fonksiyonu Nedir?
PHP'deki array_search()
fonksiyonu, bir dizide belirli bir değeri arar ve o değerin ilk bulunduğu anahtarını (indexini) döndürür. Eğer aranan değer dizide yoksa false
döner.
Bu fonksiyon özellikle dizi içinde belirli bir değerin olup olmadığını kontrol etmek ve bulunduğunda dizideki yerini almak için kullanılır.
2. array_search()
Fonksiyonu Ne İşe Yarar?
- Dizide belirli bir değerin olup olmadığını kontrol eder.
- Değerin hangi indexte (anahtarda) olduğunu bulur.
- İlişkisel (associative) dizilerde de kullanılabilir.
- Çok boyutlu dizilerle
array_column()
ile birlikte kullanılabilir.
3. array_search()
Nasıl Kullanılır?
Temel Kullanım
$colors = ['red', 'blue', 'green', 'yellow'];
$index = array_search('green', $colors);
if ($index !== false) {
echo "'green' değeri $index indeksinde bulundu.";
} else {
echo "'green' değeri dizide yok.";
}
Çıktı:
'green' değeri 2 indeksinde bulundu.
Not: Eğer
array_search()
sonucufalse
dönerse, değer dizide yoktur.
4. Associative (İlişkisel) Dizilerde Kullanımı
Eğer anahtar-değer ilişkisi olan bir dizide arama yapıyorsak, array_search()
ilgili anahtarı döndürür.
$students = [
"Ali" => 23,
"Veli" => 25,
"Ayşe" => 20
];
$key = array_search(25, $students);
if ($key !== false) {
echo "25 yaşındaki öğrenci: $key";
} else {
echo "Öğrenci bulunamadı.";
}
Çıktı:
25 yaşındaki öğrenci: Veli
Burada array_search(25, $students)
anahtar olarak "Veli" değerini döndürdü.
5. array_search()
ve array_column()
ile Çok Boyutlu Dizilerde Kullanım
Eğer elimizde çok boyutlu bir dizi varsa ve belirli bir key'in (id
, name
, email
) değerini aramak istiyorsak, array_column()
ile tek sütuna dönüştürerek array_search()
kullanabiliriz.
$users = [
["id" => 1, "name" => "Ali"],
["id" => 2, "name" => "Veli"],
["id" => 3, "name" => "Ayşe"]
];
$index = array_search(2, array_column($users, 'id'));
if ($index !== false) {
echo "ID 2 olan kullanıcının adı: " . $users[$index]['name'];
} else {
echo "ID bulunamadı.";
}
Çıktı:
ID 2 olan kullanıcının adı: Veli
Bu yöntemde:
array_column($users, 'id')
ile sadeceid
değerlerini içeren bir dizi oluşturduk.array_search(2, ...)
ileid = 2
olan satırın indexini bulduk.$users[$index]['name']
ile kullanıcının adını aldık.
6. Sık Kullanım Senaryoları
A) Kullanıcı Yetkisi Kontrolü
Bir kullanıcının belirli bir yetkiye sahip olup olmadığını kontrol etmek:
$roles = ["admin", "editor", "user"];
if (array_search("editor", $roles) !== false) {
echo "Bu kullanıcı editör!";
}
B) Özel ID Kontrolleri
Bir ürün ID'sinin listede olup olmadığını kontrol etmek:
$productIDs = [101, 202, 303, 404];
if (array_search(202, $productIDs) !== false) {
echo "Ürün ID 202 mevcut!";
}
C) Formdan Gelen Veriyi Doğrulama
Eğer bir formdan gelen veri belirli bir liste içinde mi kontrol etmek:
$validColors = ["red", "blue", "green"];
$userColor = "blue";
if (array_search($userColor, $validColors) !== false) {
echo "Geçerli renk seçildi!";
} else {
echo "Geçersiz renk!";
}
7. array_search()
ile in_array()
Arasındaki Farklar
Fonksiyon | İşlevi | Döndürdüğü Değer |
---|---|---|
array_search() |
Değeri bulup indexini/anahtarını döndürür | Bulursa index (veya anahtar), bulamazsa false |
in_array() |
Değer var mı yok mu diye kontrol eder | Bulursa true , bulamazsa false |
✅ Eğer indexi/anahtarı öğrenmek istiyorsan → array_search()
✅ Eğer sadece var mı diye kontrol etmek istiyorsan → in_array()
Örnek Karşılaştırma:
$names = ["Ali", "Veli", "Ayşe"];
$search1 = array_search("Veli", $names); // 1 döner
$search2 = in_array("Veli", $names); // true döner
8. array_search()
Kullanırken Dikkat Edilmesi Gerekenler
false
dönebilir, bu yüzden kesinlikle!== false
kullanmalısın.strict
(katı) karşılaştırma yapmak istiyorsan üçüncü parametreyitrue
yapabilirsin:
$numbers = [1, "2", 3];
var_dump(array_search(2, $numbers, true)); // false döner çünkü "2" string
9. array_search()
ile Neler Yapılabilir?
✅ Dizilerde belirli bir değerin olup olmadığını kontrol edebilirsin.
✅ Belirli bir değere sahip elemanın indexini veya anahtarını alabilirsin.
✅ Associative (ilişkisel) dizilerde belirli bir değeri bulup anahtarını alabilirsin.
✅ Çok boyutlu dizilerde array_column()
ile arama yapabilirsin.
✅ Veri doğrulama, ID eşleşmesi, kullanıcı yetkisi kontrolü gibi işlemler yapabilirsin.
array_search()
, bir dizide belirli bir değeri aramak ve bulunduğu indexi/anahtarı almak için kullanılır.- Associative diziler ve çok boyutlu dizilerde de kullanılabilir.
in_array()
ile farkı, değer yerine index/anahtar döndürmesidir.- Daha güvenli ve kesin sonuçlar için
!== false
kontrolü yapılmalıdır.
🚀 Dizi aramalarında hızlı ve etkili bir yöntem arıyorsan array_search()
kullanabilirsin!