Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Array-Dizi Değişkenin Numarasını almak

Diyelimki şöyle bir dizimiz olsun.

$sehir = array(1 => "Adana", 2 => "Adıyaman", 3 =>  "Afyon", 4 =>  "Ağrı", 5 => "Amasya", 6 => "Ankara", 7 => "Antalya");


bu dizi içinden ilk veriyi echo $sehir[1]; şeklinde Adana değerini alabiliyoruz. peki adananın başındaki 1 değerini nasıl çekeceğiz?

echo $sehir[1]; cıktı=>Adana
echo ???????; cıktı=>1 ollsun
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • xandercage adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    6 cevap - 0 soru
    $sehir = array(1 => "Adana", 2 => "Adıyaman", 3 => "Afyon", 4 => "Ağrı", 5 => "Amasya", 6 => "Ankara", 7 => "Antalya");

    $yeni_array = array_keys($sehir, "Afyon");
    echo $sehir[$yeni_array[0]];
    echo '<br>';
    echo $yeni_array[0];


    array_keys fonksyionu kendisine teslim edilen dizinin anahtarlarını başka bir dizi olarak göndürür ayrıca dizi içinde belirlenen değere göre filtreleme yapabilir.

    yani bu kodun geri dönüşü ;
    Afyon
    3
    olur
    • zyber adlı üyenin fotoğrafı zyber
      Teşekkürler.
      Aradığım buydu peki bu anahtara tek olarak ulaşabilmenin başka yöntemleri de var mıdır?
      9 yıl önce yazılmış
    • xandercage adlı üyenin fotoğrafı xandercage
      tabi ki

      $sehir = array(1 => "Adana", 2 => "Adıyaman", 3 => "Afyon", 4 => "Ağrı", 5 => "Amasya", 6 => "Ankara", 7 => "Antalya");
      $key = array_search('Afyon', $sehir);
      echo $key; //3

      bu kod ile de değeri verir keyi direk alırsınız array olarak değil.
      bu kodun çıktısı echo bölümüne de yazdığım gibi 3 olur
      9 yıl önce yazılmış

Cevaplar

  • 3
    necmettin adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    80 cevap - 0 soru
    Bir elemanın anahtarını doğrudan almak için:
    http://www.php.net/manual/en/function.array-search.php
    array_search('Adana');

    Dizide sıradaki elemanın anahtarını almak için:
    http://www.php.net/manual/en/function.key.php
    Örnekten anlaşılır.

    Bir dizinin anahtarlarını elemanlarıyla değiştirmek için:
    http://www.php.net/manual/en/function.array-flip.php
    Verdiğin diziyi 'Adana'=>1, 'Adıyaman'=>2.. haline getirir.

    Bir dizinin anahtarının listesini almak için:
    http://www.php.net/manual/en/function.array-keys.php
    Verdiğin diziye array_keys($sehir) deyince (1,2,3,..) dizisini elde edersin.

    Bir dizideki elemanların listesini almak için:
    http://www.php.net/manual/en/function.array-values.php
    array_keys'in tersidir. ('Adana', 'Adıyaman', 'Afyon'.. dizisini verir.

    php.net dizi fonksiyonları sayfası faydalı bir kaynaktır.
    • zyber adlı üyenin fotoğrafı zyber
      İnceledim Array sınıfını asp den biliyorum php de array daha detaylıymış benim istediğim yukarıda sorduğum işlemi php dizi işlemlerinde ne ile yapıldığını öğrenmek.
      Dizilerle ilgili işlemler içerisinde sanki bu sorduğumu karşılayan bir işlem yok gibi


      benim sorduğum daha basit bir şey

      $sehir = array(1 => "Adana", 2 => "Adıyaman", 3 =>  "Afyon", 4 =>  "Ağrı", 5 => "Amasya", 6 => "Ankara", 7 => "Antalya");
      


      diyelim ki bir link oluşturacağız

      <a href=deneme.php?id=[bu kısma ne yazmalıyım?]>".$sehir[1]."</a>


      çıktı şöyle olacak

      <a href=deneme.php?id=1>Adana</a>


      1 dizinin değeri olan adanayı a tagı içine yazdık ama key yani id değeri olan 1 i de yazdırmak istiyorum ama onu ne şekilde yazdıracağımı bilemiyorum.

      Aslında bu bir döngü olsaydı bunu yapabilirdim.
      Aşağıdaki gibi


      $sehir = array(1 => "Adana", 2 => "Adıyaman", 3 =>  "Afyon", 4 =>  "Ağrı", 5 => "Amasya", 6 => "Ankara", 7 => "Antalya");
      
      foreach ($sehir as $id=>$ad) {
      echo "<a href='".$id.">".$ad."</a>\n";
      }
      


      bu işlemi tüm dizi elemanları için değilde sırasını belirlediğim bir dizi elemanı için yapmaya çalışıyorum.
      9 yıl önce yazılmış
    • necmettin adlı üyenin fotoğrafı necmettin
      İlk elemana 1 anahtarını verdikten sonra diğerlerinde numara vermene gerek yok. 2, 3, vs gereksiz eğer sıralı gidiyorsa.
      Ayrıca 1'den başlayarak anahtarlar sıralı olduğuna göre,
      $sehir[1] Adana,
      $sehir[6] Ankara zaten, dolayısıyla istediğin elemana kolaylıkla ulaşabilirsin o şekilde.
      Yine de ek olarak biraz açıklayalım:
      Diyelim ki beşinci sıradaki anahtarı ve değerini almak istiyorsun:
      $sira=5;
      $anahtarlar=array_keys($sehir);
      $istedigim_anahtar=$anahtarlar[4]; //beşinci sıradaki elemanın anahtarı 4 olur normalde PHPde
      $istedigim_deger=$sehir[$istedigim_anahtar];
      echo "<a href=$istedigim_anahtar>$istedigim_deger</a>\n";
      
      9 yıl önce yazılmış