- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,441
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 7 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,092
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Bir PHP dizisindeki her bir eleman bir anahtar-değer çiftiyse, böyle bir diziye ilişkisel dizi denir. Bu tür dizilerde, her değer bir dizinle değil, ilişkili anahtarıyla tanımlanır.
- İlişkisel diziler sözlük, harita, ağaç vb. veri yapılarını uygulamak için kullanılır.
- PHP'de "=>" sembolü bir anahtar ile değeri arasında ilişki kurmak için kullanılır.
PHP'de İlişkisel Dizi Nasıl Bildirilir?
Bir diziyi bildirmenin her iki yaklaşımı da (array() fonksiyonu ve köşeli parantez gösterimi) kullanılabilir.$arr1 = array(
"Maharashtra"=>"Mumbai",
"Telangana"=>"Hyderabad",
"UP"=>"Lucknow",
"Tamilnadu"=>"Chennai"
);
$arr2 = ["Maharashtra"=>"Mumbai",
"Telangana"=>"Hyderabad",
"UP"=>"Lucknow",
"Tamilnadu"=>"Chennai"];
var_dump() fonksiyonunu çağırırsak, yukarıdaki her iki dizi de benzer yapıyı gösterecektir.
array(4) {
["Maharashtra"]=>
string(6) "Mumbai"
["Telangana"]=>
string(9) "Hyderabad
["UP"]=>
string(7) "Lucknow"
["Tamilnadu"]=>
string(7) "Chennai"
}
İlişkili bir dizideki her bir öğenin anahtar kısmı herhangi bir sayı (tam sayı, kayan nokta veya Boolean) veya bir dize olabilir. Değer kısmı herhangi bir türde olabilir. Ancak, kayan nokta anahtarı bir tam sayıya dönüştürülür. Bu nedenle, anahtar olarak "1" veya "0" olarak bir Boolean true/false kullanılır.
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
$arr1 = array(
10=>"hello",
5.75=>"world",
-5=>"foo",
false=>"bar"
);
var_dump($arr1);
?>
Aşağıdaki çıktıyı üretecektir:
array(4) {
[10]=>
string(5) "hello"
[5]=>
string(5) "world"
[-5]=>
string(3) "foo"
[0]=>
string(3) "bar"
}
5.75 anahtarının 5'e yuvarlandığını ve "true" anahtarının "0" olarak yansıtıldığını unutmayın. Aynı anahtar bir dizide birden fazla kez görünürse, en son görünen anahtar-değer çifti korunacak ve anahtarın önceki değerle ilişkisi atılacaktır.
PHP, dizinli bir diziyi bile dahili olarak ilişkisel bir dizi olarak ele alır, burada dizin aslında değerin anahtarıdır. Bu, 0. dizindeki değerin "0"a eşit bir anahtarı olduğu anlamına gelir. Dizinli bir dizideki var_dump() da bir PHP dizisinin bu özelliklerini ortaya çıkarır.
PHP İlişkisel Dizisini Yineleme
İlişkisel bir dizide yineleme yapmak için foreach döngüsü en kolay ve idealdir, ancak bazı manevralarla başka tür döngüler de kullanılabilir.Örnek
Her anahtar değer çiftinin iki değişkene açıldığı foreach döngüsü uygulamasına bakalım.
PHP:
<?php
$capitals = array(
"Maharashtra"=>"Mumbai",
"Telangana"=>"Hyderabad",
"UP"=>"Lucknow",
"Tamilnadu"=>"Chennai"
);
foreach ($capitals as $k=>$v) {
echo "Capital of $k is $v \n";
}
?>
Aşağıdaki çıktıyı üretecektir:
Capital of Maharashtra is Mumbai
Capital of Telangana is Hyderabad
Capital of UP is Lucknow
Capital of Tamilnadu is Chennai
PHP'de foreach döngüsünü kullanmanın her bir elemanın bir değişkende saklandığı başka bir yolu daha vardır. Daha sonra array_search() kullanarak anahtar ve değer kısımlarını ayırabilir ve bunları döngü gövdesinde kullanabiliriz.
PHP:
<?php
$capitals = array(
"Maharashtra"=>"Mumbai",
"Telangana"=>"Hyderabad",
"UP"=>"Lucknow",
"Tamilnadu"=>"Chennai"
);
foreach ($capitals as $pair) {
$cap = array_search($pair, $capitals);
echo "Capital of $cap is $capitals[$cap] \n";
}
?>
Aşağıdaki çıktıyı üretecektir:
Capital of Maharashtra is Mumbai
Capital of Telangana is Hyderabad
Capital of UP is Lucknow
Capital of Tamilnadu is Chennai
For, while veya do-while döngülerini kullanmak için öncelikle tüm anahtarların dizisini almamız (array_keys() fonksiyonunu kullanmamız), boyutunu bulmamız ve bunu döngü sözdiziminde test koşulu olarak kullanmamız gerekir.
Örnek
İlişkisel bir diziyi dolaşmak için for döngüsünü nasıl kullanabileceğimizi burada görebilirsiniz.
PHP:
<?php
$capitals = array(
"Maharashtra"=>"Mumbai",
"Telangana"=>"Hyderabad",
"UP"=>"Lucknow",
"Tamilnadu"=>"Chennai"
);
$keys=array_keys($capitals);
for ($i=0; $i<count($keys); $i++){
$cap = $keys[$i];
echo "Capital of $cap is $capitals[$cap] \n";
}
?>
Aşağıdaki çıktıyı üretecektir:
Capital of Maharashtra is Mumbai
Capital of Telangana is Hyderabad
Capital of UP is Lucknow
Capital of Tamilnadu is Chennai
Değere Anahtarıyla Erişim
İlişkisel bir dizide anahtar, indeks yerine değerin tanımlayıcısıdır. Bu nedenle, belirli bir anahtarla ilişkili değeri almak için $arr[key] sözdizimini kullanın. Aynısı belirli bir anahtarın değerini güncellemek için de kullanılabilir.Örnek
Aşağıdaki kodda, ilişkisel bir dizi $arr1 tanımlanmıştır. Başka bir dizi $arr2, her bir anahtarın değeri iki katına çıkarılarak $arr1'den gelen her bir çifti depolayacak şekilde oluşturulmuştur.
PHP:
<?php
$arr1 = array("a"=>10, "b"=>20, "c"=>30, "d"=>40);
foreach ($arr1 as $k=>$v){
$arr2[$k] = $v*2;
}
print_r($arr2);
?>
Aşağıdaki çıktıyı üretecektir:
Array
(
[a] => 20
=> 40
[c] => 60
[d] => 80
)
Burada kullanılan print_r () fonksiyonu, dizide saklanan verileri, insanların anlayabileceği ve okuyabileceği şekilde görüntüler.

