• 05-04-2023, 23:07:55
    #1
    Selam,
    Post ile gelen bir array dizim var. İçeriği alt dizilerden oluşuyor. Sayısını ve içeriğini ve dizi anahtarını tam olarak bilemiyorum. Fakat dizi altında alt dizilerindeki olası anahtarları biliyorum. if else kullanarak işlem yapmam gerekiyor. Yani A dizisinde anahtarını bilmediğim alt dizilerinde if else ile başka alt anahtarları sorgulayıp ona göre işlem yapacağım. Bunu nasıl yapabilirim?

    örnek bu dizinin tamamında sorgulama yapıp sırayla giderek alt dizilerde meyve anahtarı varsa şunu yap sebze diye bir anahtar varsa şunu yap gibi..

    [anadizi] => Array
            (
                [altdizi-1] => Array
                    (
                        [meyve] => elma
                        [sebze] => domates
                    )
    
                [altdizi-2] => Array
                    (
                        [tatlı] => güllaç
                        [içecek] => salep
                    )
     )
  • 05-04-2023, 23:11:23
    #2
    ÖSYM'de karşıma çıkan mantık sorusu.
  • 05-04-2023, 23:19:30
    #3
    şimdi daha manali bir soru oldu
    foreach ile döndürebilirsin
    anadizine A diyelim.
     foreach ($A as $alt_dizi) {
      if (isset($alt_dizi["sebze"])) { // alt dizide "sebze" anahtarı varsa
          echo "Sebze bulundu";
      } elseif (isset($alt_dizi["meyve"])) { // alt dizide "meyve" anahtarı varsa
          echo "meyve bulundu";
      }
    }
  • 05-04-2023, 23:23:14
    #4
    OnurAksoy adlı üyeden alıntı: mesajı görüntüle
    şimdi daha manali bir soru oldu
    foreach ile döndürebilirsin
    anadizine A diyelim.
     foreach ($A as $alt_dizi) {
      if (isset($alt_dizi["sebze"])) { // alt dizide "sebze" anahtarı varsa
          echo "Sebze bulundu";
      } elseif (isset($alt_dizi["meyve"])) { // alt dizide "meyve" anahtarı varsa
          echo "meyve bulundu";
      }
    }
    hocan alt dizi ismini bilmiyorum. ana dizinde aratmam gerek.
  • 05-04-2023, 23:30:07
    #5
    foreachseption yapabilirsin.
    yani foreachleri iç içe kullanmaktan çekinme.
    foreach ($A as $B) {
      foreach ($B as $anahtar => $deger) {
          
          if ($anahtar == "meyve") {
              echo $deger."meyvedir";
          }
          
          if ($anahtar == "sebze") {
              echo $deger."sebzedir";
          }
      }
    }
  • 05-04-2023, 23:34:53
    #6
    OnurAksoy adlı üyeden alıntı: mesajı görüntüle
    foreachseption yapabilirsin.
    yani foreachleri iç içe kullanmaktan çekinme.
    foreach ($A as $B) {
      foreach ($B as $anahtar => $deger) {
          
          if ($anahtar == "meyve") {
              echo $deger."meyvedir";
          }
          
          if ($anahtar == "sebze") {
              echo $deger."sebzedir";
          }
      }
    }
    hocam şahanesin tek bir şey kalıyor geriye o da diyelim ki meyve diye bir key varsa diye arattıyoruz ya if else varsa onun değerini nasıl alabiliriz? yani meyve bulundu meyve şu gibi..
  • 05-04-2023, 23:39:03
    #7
    $deger çekiyor işte o veriyi.
    Değere göre if else yazabilirsin içine
  • 05-04-2023, 23:41:16
    #8
    OnurAksoy adlı üyeden alıntı: mesajı görüntüle
    $deger çekiyor işte o veriyi.
    Değere göre if else yazabilirsin içine
    aynen hocam harikasın
    r10+
  • 06-04-2023, 08:50:45
    #9
    OnurAksoy adlı üyeden alıntı: mesajı görüntüle
    $deger çekiyor işte o veriyi.
    Değere göre if else yazabilirsin içine
    Hocam şöyle bir ihtiyaç oluştu hani alt dizilerden birinde meyve anahtarı olan varsa if else yapıyoruz ya dahil olduğu örneğin örnekteki altdizi-1 içindeki sebzeyi de aynı if koşulu içinde tekrar bie if kullanmadan yani tekrar sebze keyi var mı diye sorgu yapmadan indis sayısından yola çıkarak 0. 1. 2. Elaman diye ekrana nasıl yazdırabilirim

    [anadizi] => Array
            (
                [altdizi-1] => Array
                    (
                        [meyve] => elma
                        [sebze] => domates
                    )
    
                [altdizi-2] => Array
                    (
                        [tatlı] => güllaç
                        [içecek] => salep
                    )
     )