PHP in_array() Fonksiyonu
PHP 4PHP 5PHP 7
Belirtilen değerin dizide olup olmadığını kontrol eder.
Yapısı (Syntax)in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool
Parametreler
-
$needle mixedAranacak değer
-
$haystack arrayArama yapılacak dizi
-
$strict = FALSE booleanEğer TRUE olarak belirlenirse, tip dayatması yapılacaktır. Yani 1.15 ile "1.15" aynı olarak değerlendirilmeyecektir.
Dönen Değer
boolean
- Dizide bulunuyorsa TRUE, bulunmuyorsa FALSE değerini döndürür.
NOT
İşin aslı samanlıkta iğne aramanın yazılım versiyonudur :) Samanlık burada dizimiz, iğne ise dizi içinde aradığımız elemandır. Ve değer aranırken büyük-küçük harfe duyarlı olarak arayacaktır.
Örnekler
Dizinin içinde belirlediğimiz değerin olup olmadığını kontrol edelim.
<?php
$dizi = ['istanbul', 'ankara', 'eskişehir'];
if ( in_array('eskişehir', $dizi) ){
echo 'eskişehir dizi içerisinde yer alıyor.';
}
?>
Tip dayatması yaparak dizi içinde değer arayalım.
<?php
$dizi = [1, 3, 1.12, 1.18];
// tip dayatması olmadığında tipine bakmadığı için dizide yer aldığını varsayıyor.
var_export(in_array('1.18', $dizi)); // Çıktı: true
// tip dayatmasını aktif ettiğimizde biz string bir değer arıyoruz, oysa dizide bulunan değer double
var_export(in_array('1.18', $dizi, true)); // Çıktı: false
// tip dayatmasına göre doğru şekilde arama yaparsak sonuç true olacaktır.
var_export(in_array(1.18, $dizi, true)); // Çıktı: true
?>
Büyük-küçük harfe duyarsız şekilde aratmak istersek, kendimiz bir fonksiyon yazıp kullanabiliriz.
<?php
$dizi = ['Tayfun', 'Ahmet', 'Durmuş'];
function in_arrayi($needle, $haystack) {
return in_array(strtolower($needle), array_map('strtolower', $haystack));
}
var_export(in_arrayi('tayfun', $dizi)); // Çıktı: true
?>