raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP - İlişkisel Dizi

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
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
Ticaret - 0%
0   0   0

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!

php-dizi-nasil-kullanilir.jpg


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.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst