What Will I Learn?
- Associated Arrays
- Assigning and Modifying with Square Brackets
Requirements
- php server / host
Difficulty
- Basic
Türkçe
PHP de anahtar değer çiftlerinin bir araya geldiği dizilere ilişkili dizler denir. İlişkili dizide birbirlerinden virgüllerle ayrılmış çok sayıda anahtar => deger çifti alabilir.
Anahtar adları sayı ya da sözcüklerden oluşabilir.
Anahtar adı sözcük olabilir.
$dizi1= array("ad" => "Efe", "soyad" => "Çamcı");
Anahtar adı sayı olabilir.
$dizi2= array(1 => "efe", 2 => "ÇAMCI");
Bir anahtar ile ilişkilendirilmiş dizi elemanını elde etmek için anahtarın adı köşeli [] parantez içine yazılır. Anahtar adı harf ya da sözcük ise mutlaka tek yada çift tırnak arasına alınır, sayılar için bu zorunluluk yoktur.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$dizi1 = array("ad" => "Efe", "soyad" => "ÇAMCI");
echo $dizi1["ad"].'
';
echo $dizi1["soyad"].'
';
$dizi2 = array(1 => "Efe", 2 => "ÇAMCI");
echo $dizi2[1].'
';
echo $dizi2[2].'
';
?>
</body>
</html>
Anahtar adı bir değişken ise tırnak arasına alınmaz. Değişken aşağıdaki gibi köşeli parantez içine yazılarak kullanılır.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$anahtar = "ad";
$dizi1 = array("ad" => "Efe", "soyad" => "ÇAMCI");
echo $dizi1[$anahtar];
?>
</body>
</html>
Köşeli Parantez ile Atama ve Değişiklik Yapmak
Bir diziye, doğrudan değer atayarak değişiklik yapılabilir. Köşeli parantez [] içine bir anahtar adı yazılarak, diziye yeni eleman eklenebilir, ya da dizideki bir elemanın anahtar adı kullanılarak, değeri değiştirilebilir.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$dizi = array("id" => 2, "baslik" => "Dizi");
$dizi["detay"]='Diziler';
echo ''
;
print_r($dizi);
echo '';
?>
</body>
</html>
Örneğimizde mevcut diziye anahtar adı detay olan bir eleman eklenmiş olur. Yeni bir eleman boş köşeli parantez ile atamak istediğimizde, dizinin en son anahtarı bir arttırılarak yeni anahtar ve değer eklenecektir.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$dizi = array(1 => "Elma", 2 => "Üzüm");
$dizi[] = 'Vişne';
echo ''
;
print_r($dizi);
echo '';
?>
</body>
</html>
Eğer dizi yoksa, yeni bir eleman boş köşeli parantez ile atamak istediğimizde, yeni bir dizi oluşacak ve eklenen denetim sırası 0 dan başlayacaktır.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$dizi[] = 'Vişne';
echo ''
;
print_r($dizi);
echo '';
?>
</body>
</html>
Örnekte olduğu gibi köşeli [] parantez kullanarak birden fazla eleman bir diziye eklenebilir.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$dizi[]='Vişne';
$dizi[]='Üzüm';
$dizi[]='Ayva';
$dizi[]='Nar';
echo ''
;
print_r($dizi);
echo '';
?>
</body>
</html>
Bir diziyi istediğimiz bir sıradan başlatabiliriz. Aşağıdaki örneğimizde dizinin ilk elemanın sırasını 1 olarak belirledik.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$ay = array(1 => "Ocak", "Şubat", "Mart");
echo ''
;
print_r($ay);
echo '';
?>
</body>
</html>
Bir diziden bir elemanı (anahtar/değer çiftini) silmek için unset() fonksiyonu kullanılır.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$dizi = array(1 => "Elma", 2 => "Üzüm");
$dizi[] = 'Vişne';
echo ''
;
print_r($dizi);
echo '';
unset($dizi[2]); // Elemanı diziden siler
echo ''; print_r($dizi); echo ''; unset($dizi); // Dizinin tamamını siler echo '
'; print_r($dizi); echo ''; ?> </body> </html>
Döngü ile dizi elemanlarını elde etmek. foreach() döngüsü ile bir dizinin anahtarını ve değerini elde edebiliriz.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
<?php
$aylar=array('Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık');
foreach ($aylar as $ay) {
echo "$ay";
}
?>
</body>
</html>
Bir dizinin elemanlarını bir form listesi olarak kullanmak için döngüden yararlanabiliriz.
<!DOCTYPE html>
<html>
<body>
<head>
<title> Diziler </title>
<meta charset="utf-8" />
</head>
<body>
Ay seç:<br/>
<select name="ay">
<?php
$aylar=array('Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık');
foreach ($aylar as $ay) {
echo "$ay";
}
?>
</select>
</body>
</html>
Posted on Utopian.io - Rewarding Open Source Contributors