PHP DİZİLERDE ARAMA in_array() - array_search FONKSİYONU

in_array Fonksiyonu dizide bir değerin varlığını araştırır. Dönen değerler olarak değer varsa True döner, Değer yoksa False döner.

Sözdizimi:

in_array( search,dizi,type )

Search: Gereklidir. Aranan değer belirtilir.

Dizi: Gereklidir. Aranacak dizi belirtilir.

Type: Bu değiştirgede TRUE belirtilmişse in_array() işlevi dizi içindeki elemanın türüne de bakacaktır.

ÖRNEK:


<?php
	
$meyve = array("Elma", "Kiraz", "Nar", "Şeftali");

if (in_array("Kiraz", $meyve)) {

    echo "Kiraz dizinde var";
 }

if (in_array("şeftali", $meyve)) {

    echo "şeftali dizinde var";
 }
?>

in_array() işlevi harf büyüklüğüne duyarlı olduğundan ikinci koşul başarısız olur ve sonuç şu şekilde ekrana yansır.

ÇIKTI:

Kiraz dizinde var

Örnek 2 - Türe de bakan in_array() örneği:


<?php

$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {

    echo "'12.4' uygun türde bulundu <br>";
}

if (in_array(1.13, $a, true)) {

    echo "1.13 uygun türde bulundu";
}

?>

ÇIKTI:

1.13 uygun türde bulundu

Yukarıda örnekte görüldüğü üzere isteğe bağlı seçenek True verildiği için türe göre arama yapacağız. Dizide (12.4) Float türünde tanımlanmış, arama fonksiyonunda "12.4" Sitring olarak arandığı için ekrana bulundu mesajı yazmadı.

array_search Fonksiyonu


array_search : Bir dizide belirtilen değeri arar ve bulursa ilgili anahtarı döndürür. Aranan eleman harf büyüklüğüne duyarlıdır.

Sözdizimi:

array_search( value,dizi,type )

Value: Gereklidir. Aranacak değer.

Dizi: Gereklidir. Aranacak dizi belirtilir.

Type: Bu değiştirgede TRUE belirtilmişse in_array() işlevi dizi içindeki elemanın türüne de bakacaktır.

DÖNEN DEĞERLER

Bulursa Elemanı, bulamazsa FALSE döndürür.

Eğer değer, Dizi içinde birden fazla varsa ilk bulunan döndürülür. Eşleşen tüm değerlerin anahtarlarını döndürmek isterseniz bu işlevi kullanmak yerine, array_keys() işlevini seçimlik arama_değeri değiştirgesi ile kullanın.


<?php

$array = array(0 => 'mavi', 1 => 'beyaz', 
               
			   2 => 'yeşil', 3 => 'siyah');
			   
 $a = array_search('yeşil', $array);
 
 $b = array_search('mavi', $array);
 
echo "yeşil rengin anahtarı...:".$a."<br>";
 
echo "mavi rengin anahtarı...:".$b; 

?>

ÇIKTI:

yeşil rengin anahtarı...:2

mavi rengin anahtarı...:0

Örnek 2 - Türe de bakan array_search() örneği:


<?php

$a=array("a"=>"5","b"=>5,"c"=>"5");

echo "Anahtar adı...:".array_search(5,$a,true);

?>

ÇIKTI:

Anahtar adı...:b

Yukarıda örnekte görüldüğü üzere isteğe bağlı seçenek True verildiği için türe göre arama yapacağız. Aranan sayı (5) İnteger türünde olduğu için anahtar değeri b yazdı diğer "5" sayıları tırnak içinde yazıldığı için String türünde olduğu için bunları ekrana yazmadı.

hasan 11/04/2018

$meyve = array("Elma", "Kiraz", "Nar", "Şeftali"); if (in_array("Kiraz", $meyve)) { echo "Kiraz dizinde var"; } evet bu şekide çalışıyor ama "Elma", "Kiraz", "Nar", "Şeftali" veritabanından cekiyorum çalışmıyor. $elemanlar=$sor["elemanlar"]; $meyve = array($elemanlar); if (in_array("Kiraz", $meyve)) { echo "Kiraz dizinde var"; } bu şekilde olınca hata mesajı Notice: Array to string conversion in ... diyor.

yönetici 11/04/2018

Hasan, veritabanından çektiğin veri değişkenini print_r komutla içeriğine bak.

echo "<pre>";
print_r ($meyve);
echo "</pre>";

ibrahim 08/05/2018

peki dizide sayılar var diyelim gelen değer ara değer ona en yakın olanı nasıl bulabiliriz?

yönetici 09/05/2018

İbrahim, php dizide en yakın değer :

$dizi=array(2,20,30,40,50,60,70,80);

$ara=56;

function yakin( $a, array $dizi ) {

  $fark = array();

    foreach( $dizi as $d) {

        $fark[$d] = abs($d-$a);      
    }
   return array_search(min($fark), $fark);  }

echo yakin($ara, $dizi);

ferides 24/04/2019

$sayilar = array (-5,10,-6,18,-4,-3,)
$negatifsayilar = array ()
$pozitifsayilar= array () negatif ve pozitif sayıların içerisine nasıl yazdıracağım ?

yönetici 25/04/2019


$lt;?php

function pozitif($arr) 
{ 
    if($arr > 0) 
       return TRUE; 
    else 
       return FALSE;  
} 
function negatif($arr) 
{ 
    if($arr < 0) 
       return TRUE; 
    else 
       return FALSE;  
} 
  
$sayilar =[-5,10,-6,18,-4,-3];

$pozitifsayilar = array_filter($sayilar, "pozitif");
$negatifsayilar = array_filter($sayilar, "negatif");

echo "<pre>";
print_r($pozitifsayilar); 
echo "<br> <br>";
print_r($negatifsayilar); 
echo "</pre>";
  
?>

Ramazan Şen 13/01/2020

Merhaba, php bot Aracılığı ile bir sayfadan veri cekiyorum. Çektiğim verileri örnek olarak aşagıdaki gibi array olarak alıyorum. Benim burada istediğim array içerisindeki sadece izmir metni geçen tüm verileri alıp yazdırmak. Diğer illerin verilerini yazdırmaya gerek yok. Bu konuda örnek bir kod paylaşırmısınız?

Array
(
[0] => Array
(
[0] => izmir 7 km yol çalışması
[1] => muğla heyalan dolayısyla 25 km kapalı
[2] => izmir heyalan dolayısyla 25 km kapalı
[3] => denizli yol bakım çalışması
[4] => aydın ulaşım tek şeritten sağlanıyor
[5] => izmir xxx yolu trafiğe kapalı
[6] => muğla xxx yolu trafiğe kapalı
)

yönetici 14/01/2020


function İzmir($arr) 
{ 
    $arr = explode(" ",$arr);
    if(in_array("izmir", $arr)) 
       return TRUE; 
    else 
       return FALSE;  
} 
     $ar =  [0 => "izmir 7 km yol çalışması", 
 	     1 => "muğla heyalan dolayısyla 25 km kapalı", 
 	     2 => "izmir heyalan dolayısyla 25 km kapalı", 
 	     3 => "denizli yol bakım çalışması",
 	     4 => "aydın ulaşım tek şeritten sağlanıyor", 
 	     5 => "izmir xxx yolu trafiğe kapalı", 
 	     6 => "muğla xxx yolu trafiğe kapalı"];
 echo "<pre>";
 print_r(array_filter($ar, "İzmir"));

Ramazan Şen 16/02/2020

Merhaba, Yardımınız için tesekkurler. Kod çalışıyor ama şöyle bir sorun var. Örneğin bazı Array verilerinde İzmir-Muğla veya İzmir-Manisa gibi birleşik olan metinlerde işe yaramıyor. Ayrıca gerek olursa aynı anda iki il aramak için ne yapabiliriz? Tesekkurler Şimdiden

yönetici 22/02/2020

Ramazan, 3,4 tane değişik fonksiyon hazırlayabilirsin.Aşağıdaki kodları arayacağın şekilde değiştir.

 if(in_array("İzmir-Muğla", $arr)) 

Yazdırma yerinede bunu ekle

print_r(array_filter($ar, "mugla"));

Arif 08/05/2020

merhaba aşağıdaki gibi bir dizim var ben burda şuan ki saate en yakın ve büyük saati nası yakalarım? şimdiden teşekkür ederim şuanki saati 06:45 varsayarsak yakalamam gereken [ogle] => 13:11 Array ( [0] => Array ( [tarih] => 08.05.2020 [tarih_uzun] => 08 Mayıs 2020 Cuma [hicri] => 15.09.1441 [hicri_uzun] => 15 Ramazan 1441 [imsak] => 04:24 [gunes] => 05:59 [ogle] => 13:11 [ikindi] => 17:00 [aksam] => 20:13 [yatsi] => 21:42 ) )

yönetici 08/05/2020

Arif, Böyle bir dizide string ve sayılar olduğu bir dizide istediğin şekilde veri bulman çok zor. sadece sayılar olsa php max() fonksiyonuyla en büyük değer bulunabilir.
Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır.

9361

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML RESME LİNK VERME
  • HTML DİV ve SPAN NEDİR?
  • HTML FORM OLUŞTURMA
  • HTML KAYAN RESİM VE Marguee KULLANIMI
  • HTML RESİM EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • HTML ARKAPLANA MÜZİK EKLEME
  • HTML KAYAN YAZI VE Marguee KULLANIMI
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.