Navigate / search

split() ile Metni Özel Bir Karakterle Diziye Bölmek

Dizilere bölmek,Diziye Bölmek,Split komutunun kullanımı…..

Bir değişken içindeki bazı metinleri sayıları birbirinden bağımsız hale getirmemiz gerekir.Birbirinden bağımsız derken her birini farklı bir değişkene atmak yada bir dizi içinde ayırmak olabilir.Şimdi bir örnek yapalım.Bir değişken içerisinde 5 6 farklı kişnin adının kaydedildiğini varsayalım.Bunlarında virgül ile ayrıldığını düşünürsek şu şekilde isimleri bir diziye aktarabiliriz.

1
2
$isimler="ali,ahmet,veli,murat,hasan";
$isimler_dizi=split("[,]",$isimler);

Bu şekilde her kişi adını bir dizi içine atmış olduk.Şimdi bunları foreach ile yazdıralım.

1
2
3
4
5
$isimler="ali,ahmet,veli,murat,hasan";
$isimler_dizi=split("[,]",$isimler);
foreach ($isimler_dizi as $isim){
      echo $isim."<br>";
}

Örneği çalıştırdıysanız her bir ismin farklı farklı tutulduğunu göreceksiniz.
Şimdi biraz daha detaylı bir örnek yapalım.Bu sefer split() fonksiyonunun farklı bir kullanımını göreceğiz.Fonksiyonu kullanırken bir ayraç kullanmıştık.O ayracı her gördüğünde metni dizilere ayırıyordu.İşte o ayraç sayısını istediğimiz şekilde arttırabiliriz.Örneğin hem virgül hem nokta hemde soru işaret olan kısımları ayır diyebiliriz.

Örneğin web sitesinde kullanıcının doldurup bize gönderdiği bir form var.bu formada tarihi gün ay yıl olarak girecektir.Kimi kullanıcı gün ay yıl ı yazarken aralara “.” kimi kullanıcı ” /” kimi kullanıcı ise ” – ” koyabilir.Explode fonksiyonunda böyle bir istisnai durumu çözmemize imkan yoktur.Yine örneğimizden yola çıkarak biz bu tarihleri 3 farklı karakter kullanılarakta yapsak sorun çıkmadan nasıl yaparız.
Komutu şu şekilde kullanmamız gerekicek: split(“[/-.]“,$tarih)

1
2
$tarih="24/02/1987";
$detayli_tarih=split("[/-.]",$tarih);

Split Fonksiyonu

Explode() fonksiyonunda yaptığımız işin aynısını split komutundada yapabiliriz.Hatta explode fonksiyonunun yapamadığı bazı özel durumları bile split() fonksiyonu ile yapabiliriz.Split fonksiyonunu kullanırken explode’daki gibi yazıyoruz fakat metinlerin arasındaki ayrımak istediğimiz karakteri [] arasına yazmamız gerekiyor

explode kullanımı:

$a=explode("*",$degisken);

split kullanımı:

$a=split("[*]",$degisken);

Şimdi Split fonksiyonuna nerelerde ihtiyacımız olabileceğini söyleyelim.Örneğin web sitesinde kullanıcının doldurup bize gönderdiği bir form var.bu formada tarihi gün ay yıl olarak girecektir.Kimi kullanıcı gün ay yıl ı yazarken aralara “.” kimi kullanıcı ” /” kimi kullanıcı ise ” – ” koyabilir.Explode fonksiyonunda böyle bir istisnai durumu çözmemize imkan yoktur.Yine örneğimizden yola çıkarak biz bu tarihleri 3 farklı karakter kullanılarakta yapısak sorun çıkmadan nasıl yaparız.
Ayırmak istediğimiz karakterimizi [] içinde yazacağız demiştik.İşte bu köşeli parantezler içine ayırmak istediğimiz karakterleri birden fazla dahi olsa şu şekilde yazabiliyoruz [/.-].Şimdi program üzerinde gösterelim.

1
2
$tarih="24/02/1987";
$detayli_tarih=split("[/-.]",$tarih);

Bu program içinde $tarih değişkenindeki gün ay yıl “/” , “.” yada “-” ile ayrılmış olsada programımız çalışacaktır.