• 02-11-2021, 22:30:24
    #1
    Merhaba, aşağıda

    $uye_secim_no[5]   = array("5","6","7");
    $uye_secim_no[6]   = array("1","2","3");
    $uye_secim_no[7]   = array("15","16","17");
    $uye_secim_kontrol = array("1","2","3","4","5","6","7","8","9","10");
    
    foreach($uye_secim_no as $uye_no_id => $uye_no_dizi)
    {
       if(array_intersect($uye_secim_kontrol,$uye_no_dizi))
       {
          for($i = 0; $i < count($uye_secim_kontrol); $i++)
          {
             if(!empty($uye_no_dizi[$i]))
             {
                echo $uye_no_id.' - ';
                echo $uye_no_dizi[$i].' | ';
             }
          }
          echo "<br />";
       }
    }
    Sonuç bu şekil de çıkıyor, yani 5 id'si 5,6,7 - 6 id'si 1,2,3

    5 - 5 | 5 - 6 | 5 - 7 |

    6 - 1 | 6 - 2 | 6 - 3 |


    İstediğim şey uye_secim_kontrol dizisindeki 10 adet rakam 1'den 10'na kadar sıralarken, araya diğer uye_secim_no'da bulunan dizi key'lerini koyacak, mesela 1,2,3 6 noya ait diyecek ben bunu ul li şeklinde göstereceğim için yan yana koyunca çıkması gerek mesela $uye_secim_no_id 6-1,2,3 sonra 5-5,6,7 diyecek ama arada 4 var ve devamında 8,9,10 var onlarda boş gelecek.
  • 02-11-2021, 23:17:29
    #2
    İstediğin çıktı; "5 - 5 | 5 - 6 | 5 - 7 |" değil de; "5-5,6,7" mi. Tam olarak anlayamadım. Yukarıdaki kodun istediğin şekilde çalışıyor olduğunu varsayalım; yukarıdaki değerlere göre tam olarak nasıl bir çıktı olması gerekiyordu?
  • 02-11-2021, 23:36:59
    #3
    Şu şekil de olması gerek : 6-1,2,3| 4 | 5-5,6,7 | 8,9,10


    uye_secim_no da bulunan rakamları sıralarsam 5,6,7,1,2,3 diye gidiyor ve 1'den 10 na kadar diğer rakamları araya koyamıyorum koysam bile bu kezde index no'ları koyamıyorum.


    veya alt alta farketmez önemli olan, 1,2,3 rakamı 6 nolu indexe ait diyecek
    6(1,2,3)
    4
    5(5,6,7)

    8,9,10

  • 03-11-2021, 01:15:50
    #4
    Sonunda istediğim oldu.

    $uye_secim_no[5]   = array("5","6","7");
    $uye_secim_no[6]   = array("1","2","3");
    $uye_secim_no[7]   = array("8","10");
    $uye_secim_kontrol = array("1","2","3","4","5","6","7","8","9","10");
    
    
    $key_sonuc = '';
    for($i = 0; $i < count($uye_secim_kontrol); $i++)
    {
       $msc = $uye_secim_kontrol[$i];
    
       foreach($uye_secim_no as $key => $fv_1)
       {
          if(in_array($msc,$fv_1))
          {
             $key_sonuc .= $key.'-';
          }
       }
       $key_sonuc .= $msc.'|';
    }
    
    $key_sonuc_e = explode("|",$key_sonuc);
    
    foreach($key_sonuc_e as $fv_1)
    {
       $fv_1_e = explode("-",$fv_1);
    
       if(!empty($fv_1_e[0]) && !empty($fv_1_e[1]))
       {
          echo " key :".$fv_1_e[0];
          echo " value :".$fv_1_e[1];
       }
       else
       {
          if(!empty($fv_1_e[0]))
          {
             echo " value :".$fv_1_e[0];
          }
       }
       echo "<br />";
    }
    Sonuç

    key :6 value :1
    key :6 value :2
    key :6 value :3
    value :4
    key :5 value :5
    key :5 value :6
    key :5 value :7
    key :7 value :8
    value :9
    key :7 value :10
  • 03-11-2021, 17:04:18
    #5
    Aynı çıktıyı bu kod ile de alabilirsin. Bu arada nasıl bi çıktı istediğini bu yüzden sormuştum. İkisinin arasında epey fark var.
    array_walk($uye_secim_kontrol, function($num) use($uye_secim_no) {
        $key = null;
        foreach($uye_secim_no as $k => $v)
            if(in_array($num, $v)) $key = $k;
        echo trim(join(' ', [($key ? "key:{$key}" : null), "value:{$num}", '</br>']));
    });
    ilgice adlı üyeden alıntı: mesajı görüntüle
    Sonunda istediğim oldu.

    $uye_secim_no[5]   = array("5","6","7");
    $uye_secim_no[6]   = array("1","2","3");
    $uye_secim_no[7]   = array("8","10");
    $uye_secim_kontrol = array("1","2","3","4","5","6","7","8","9","10");
    
    
    $key_sonuc = '';
    for($i = 0; $i < count($uye_secim_kontrol); $i++)
    {
       $msc = $uye_secim_kontrol[$i];
    
       foreach($uye_secim_no as $key => $fv_1)
       {
          if(in_array($msc,$fv_1))
          {
             $key_sonuc .= $key.'-';
          }
       }
       $key_sonuc .= $msc.'|';
    }
    
    $key_sonuc_e = explode("|",$key_sonuc);
    
    foreach($key_sonuc_e as $fv_1)
    {
       $fv_1_e = explode("-",$fv_1);
    
       if(!empty($fv_1_e[0]) && !empty($fv_1_e[1]))
       {
          echo " key :".$fv_1_e[0];
          echo " value :".$fv_1_e[1];
       }
       else
       {
          if(!empty($fv_1_e[0]))
          {
             echo " value :".$fv_1_e[0];
          }
       }
       echo "<br />";
    }
    Sonuç

    key :6 value :1
    key :6 value :2
    key :6 value :3
    value :4
    key :5 value :5
    key :5 value :6
    key :5 value :7
    key :7 value :8
    value :9
    key :7 value :10