PHP Array Fonksiyonları
Array Nedir?
Öncelikle array bir veri türüdür. Bir küme olarak düşünebiliriz, ancak PHP de aynı isim veya sayı tür barınabilir. Çoğu dillere kıyasla array değişkeni PHP de en harika olarak düşünüyorum. Tanımsız ve bağımsızdır.
Basit bir array örneği
array('tolga','tasci',5,6,true) // 5.4 Öncesi (Her zaman çalışır)['tolga','tasci',5,6,true] // 5.4 ve sonrası
PHP’de array değişkenleri önceden tanımlanmasına gerek yoktur. JAVA gibi diller gibi. Kolaylıkla çoğaltılabilir ve değiştirebilir.
Array Keys Nedir
Array key değerleri sayısal veya Yazısal olabilir. ( Integer, String )
İsterseniz güzel bir örnekle gösterelim. Dizelerde anahtarlar otomatik olarak belirtilmediği sürece sayısal değer alırlar. Bu sayısal değerler 0 ile başlar. Örneğin 5 tane elaman varsa 0, 1, 2 , 3, 4 şeklinde anahtar dizesi alır.
var_dump(array('tolga','tasci',5,6,true)) // otomatik sayısalarray(5) { [0]=> string(5) "tolga" [1]=> string(5) "tasci" [2]=> int(5) [3]=> int(6) [4]=> bool(true) }
Şimdide yazısal (String) anahtarlara göz atalım. Aşağıda paylaştığım sonuçlara göz attığınızda anahtar dizeleri yazısal da olabileceğini gördük.
var_dump([
'test'=>'test 1',
'test2'=>'test 2 değeri',
'test3'=>3,
])
array(3) { ["test"]=> string(6) "test 1" ["test2"]=> string(14) "test 2 değeri" ["test3"]=> int(3) }
Peki bunlara nasıl erişebiliriz ve bir döngüye alabiliriz ? Çünkü; yazısal olan bir array değişkenini kaç tane elaman olduğunu ve bunları hangi anahtar ile çağıracak olmamız.
$degisken[0]; // Basit bir şekilde array değişkeninden ilk elamanımızı istedik.
$y_degisken['test']; // Yazısal anahtar olarak değişkenden test adında anahtara sahip elamanı istedik.// aşağıda for döngüsüne alıp array değişkenindeki tüm elamanları (sayısal anahtarlara sahip) ekrana yazdırdık.for($i=0;$i<count($degisken);$i++):
print($degisken[$i]);
endfor;
// Yazısal olarak LOOP etmek için for ile$yazi_degisken = [
'test'=>'test 1',
'test2'=>'test 2 değeri',
'test3'=>3,
];$yazi_degisken_keys = array_keys($yazi_degisken);for($i=0;$i<count($yazi_degisken);$i++):
print($yazi_degisken[$yazi_degisken_keys[$i]]);
endfor;yada basit bir yol ile foreach kullanarak$yazi_degisken = [
'test'=>'test 1',
'test2'=>'test 2 değeri',
'test3'=>3,
];foreach($yazi_degisken as $key => $degisken_deger):
print($key);
print(' : ');
print($degisken_deger);
endforeach;
array_push Dizeye yeni eleman veri ekleme
$degisken = [
'tolga','tasci'
];
array_push($degisken, '27');
print_r($degisken);Array ( [0] => tolga [1] => tasci [2] => 27 )
Array Silme işlemi
$degisken = array('tolga','tasci',5,6,true);unset($degisken[0]);var_dump($degisken);
array(4) { [1]=> string(5) "tasci" [2]=> int(5) [3]=> int(6) [4]=> bool(true) }
array_map Nedir ?
Bu işlev oldukça hoşunuza gideceğini düşünüyorum. Array değişkeniniz deki tüm elemanları fonksiyondan geçirir ve size yeni bir değişken olarak verir. Örnekle açıklamak gerekirse.
function convert_money($money)
{
return number_format($money, 2, ',', '.');
}$degisken = array(10, 20, 30, 40, 50);
$yeni_degisken = array_map("convert_money", $degisken);
var_dump($yeni_degisken);array(5) { [0]=> string(5) "10,00" [1]=> string(5) "20,00" [2]=> string(5) "30,00" [3]=> string(5) "40,00" [4]=> string(5) "50,00" }
Gördüğünüz gibi her eleman için convert_money fonksiyonu çalıştırıyor ve number_format uygulayarak geri değer alıyor.
array_key_last
Array değişkeniniz de size en son elamanın anahtarını verir. Bazen listenizin en son elamanına ihtiyaç duyabiliriz. Bunu loop yerine tek seferde çağırabiliriz.
$degisken = array(10, 20, 30, 40, 50);var_dump(array_key_last($degisken)); //dönen sonuç 4 olucakvar_dump($degisken[array_key_last($degisken)]); // sonuç 50 olacak// başka bir yöntem ise$y_degisken = array('test'=>'test 1','test2'=>'test 2','test3'=>'test 3');
var_dump(end(array_keys($y_degisken))); // sonuç test3 yani anahtar verecek
var_dump($y_degisken[end(array_keys($y_degisken))]); // test 3 çıktısı verecek
array_key_first
Array değişkeniniz de size ilk elamanının anahtarını verir.
$degisken = array(10, 20, 30, 40, 50);var_dump(array_key_first($degisken)); //dönen sonuç 0 olucakvar_dump($degisken[array_key_first($degisken)]); // sonuç 10 olacak
Bazılarımız değişkeni çağırırken index 0 olarak çağırıp ilk elamanı alırım diyebilir. Bu sayısal bir anahtara sahip array değişkeni için doğru ancak yazısal bir anahtara sahip olduğunda bu sayede çağırabilirsiniz.
array_key_exists
Array değişkeniniz de anahtarınızın olup olmadığını kontrol eder. Sadece anahtar ( key) kontrol eder.
$degisken = array('key_1'=>'1. yazi','key_2'=>'2. yazı');
var_dump(array_key_exists('key_1',$degisken)); // true
if(array_key_exists('key_2',$degisken)) echo 'key_2 mevcut';
array_merge
Array değişkenlerimizi ardarda ekleyerek yeni bir array değişkeni elde edersiniz.
$degisken_1 = array(1,2,3,4,5);
$degisken_2 = array(6,7,8,9,10);$son_degisken = array_merge($degisken_1, $degisken_2);
var_dump($son_degisken);
array(10) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) [7]=> int(8) [8]=> int(9) [9]=> int(10) }
Array Sıralama işlemleri
Array değişkenlerimizi sıralamak isteyebilirsiniz. Aşağıda ufak bir örnek verdim.
sort()
- dizileri artan düzende sıralarsort()
- dizileri azalan düzende sıralaasort()
- ilişkisel dizileri değere göre artan düzende sıralarksort()
- ilişkilendirilebilir dizileri anahtara göre artan düzende sıralaarsort()
- ilişkisel dizileri değere göre azalan düzende sıralarkrsort()
- ilişkilendirilebilir dizileri anahtara göre azalan düzende sıralayın
$sayisal_degisken = array(1,2,3,4,5,6,7,8,9,10);
sort($sayisal_degisken);
var_dump($sayisal_degisken);