• 12-06-2021, 10:17:40
    #1
    Üyeliği durduruldu
    Çözüldü: https://www.r10.net/1080335177-post11.html

    Merhaba arkadaşlar;

    Array ile kendi içinde eşleştirme yapmaya çalışıyorum ama işin içinden çıkamadım bu noktada.

    İşin sonunda elde etmek istediğim çıktı şu şekilde:

    => 4,Beyaz - 1,S
    => 4,Beyaz - 5,L
    => 4,Beyaz - 7,XL
    => 8,Siyah - 1,S
    => 8,Siyah - 5,L
    => 8,Siyah - 7,XL

    Kodlarım ise bu şekilde:

    <?php
    $data = array('1,4,Beyaz','1,8,Siyah','2,1,S','2,5,L','2,7,XL');
    
    $arr = array();
    foreach ( $data as $d ) {
    if ( strpos($d,",") !== false ) {
    $v = explode(",",$d);
    $grupID = $v[0];
    $attrID = $v[1];
    $name = $v[2];
    $arr[] = array(
    'grup' => $grupID,
    'id' => $attrID,
    'name' => $name
    );
    }
    }
    
    $grupID = array();
    foreach ( $arr as $s ) {
    $grupID[] = $s['grup'];
    }
    $grupID = array_count_values($grupID);
    
    foreach ( $grupID as $k => $v ) {
    //echo $k;
    }
    ?>
    Yardımcı olacak arkadaşlara şimdiden teşekkürler ve +r10
  • 12-06-2021, 10:38:40
    #2
    Ne yapmak istediğini tam yazar mısın? Çok anlamsız duruyor yazdıkların. Kendi adıma mantık kuramadım.
  • 12-06-2021, 10:46:11
    #3
    Üyeliği durduruldu
    Loopcode adlı üyeden alıntı: mesajı görüntüle
    Ne yapmak istediğini tam yazar mısın? Çok anlamsız duruyor yazdıkların. Kendi adıma mantık kuramadım.
    Elimde şöyle bir array data var:

    $data = array('1,4,Beyaz','1,8,Siyah','2,1,S','2,5,L','2,7,XL');
    ve ben bu datadan şu sonucu almak istiyorum:

    => 4,Beyaz - 1,S
    => 4,Beyaz - 5,L
    => 4,Beyaz - 7,XL
    => 8,Siyah - 1,S
    => 8,Siyah - 5,L
    => 8,Siyah - 7,XL
  • 12-06-2021, 10:49:26
    #4
    omerkaan adlı üyeden alıntı: mesajı görüntüle
    Elimde şöyle bir array data var:

    $data = array('1,4,Beyaz','1,8,Siyah','2,1,S','2,5,L','2,7,XL');
    ve ben bu datadan şu sonucu almak istiyorum:

    => 4,Beyaz - 1,S
    => 4,Beyaz - 5,L
    => 4,Beyaz - 7,XL
    => 8,Siyah - 1,S
    => 8,Siyah - 5,L
    => 8,Siyah - 7,XL
    Önerim şu şekilde; içinde beyaz ve siyah olan öbekleri olmayanlar ile döngü yaparak basabilirsin.
  • 12-06-2021, 10:51:46
    #5
    Üyeliği durduruldu
    Loopcode adlı üyeden alıntı: mesajı görüntüle
    Önerim şu şekilde; içinde beyaz ve siyah olan öbekleri olmayanlar ile döngü yaparak basabilirsin.
    Zaman ayırıp cevap verdiğiniz için teşekkür ederim öncelikle.

    Array içindeki elemanlar değişken. "siyah","beyaz" örnek olması açısından yazdım. Başka bir yol bulmak gerek.
  • 12-06-2021, 10:56:58
    #6
    omerkaan adlı üyeden alıntı: mesajı görüntüle
    Zaman ayırıp cevap verdiğiniz için teşekkür ederim öncelikle.

    Array içindeki elemanlar değişken. "siyah","beyaz" örnek olması açısından yazdım. Başka bir yol bulmak gerek.
    Hocam o zaman o siyah beyaz kelimelerini bir arrayde topla, bu şekilde match edebilirsin.
  • 12-06-2021, 11:00:26
    #7
    Üyeliği durduruldu
    Loopcode adlı üyeden alıntı: mesajı görüntüle
    Hocam o zaman o siyah beyaz kelimelerini bir arrayde topla, bu şekilde match edebilirsin.
    Evet, o şekilde bende düşünüp uyguladım şimdi. Bakalım sonuç alabilecekmiyiz.

  • 12-06-2021, 11:01:09
    #8
    Loopcode adlı üyeden alıntı: mesajı görüntüle
    Hocam o zaman o siyah beyaz kelimelerini bir arrayde topla, bu şekilde match edebilirsin.
    $colors=array("siyah","beyaz");
    $data=array('1,4,Beyaz','1,8,Siyah','2,1,S','2,5,L ','2,7,XL');
    for($i=0;$i<count($colors);$i++){
    for($d=0;$d<count($data);$d++){
    $_data=explode(",",$data[$d]);
    if(in_array($colors[$i],$_data){
    echo "renk bulundu";
    }
    }
    }
  • 12-06-2021, 11:01:43
    #9
    omerkaan adlı üyeden alıntı: mesajı görüntüle
    Elimde şöyle bir array data var:

    $data = array('1,4,Beyaz','1,8,Siyah','2,1,S','2,5,L','2,7,XL');
    ve ben bu datadan şu sonucu almak istiyorum:

    => 4,Beyaz - 1,S
    => 4,Beyaz - 5,L
    => 4,Beyaz - 7,XL

    => 8,Siyah - 1,S
    => 8,Siyah - 5,L
    => 8,Siyah - 7,XL
    tek bir array içinden bunu yapmak istemenin bir mantığı görünmüyor, varsa açıklaman lazım
    bence 2 farklı array kullanmalısın yada verilere tanımlama yapman lazım

    $data1 = array('1,4,Beyaz','1,8,Siyah');
    $data2 = array('2,1,S','2,5,L','2,7,XL' );

    veya
    $data = array('1,4,Beyaz' => '2,1,S|2,5,L|2,7,XL' ,'1,8,Siyah' => '2,1,S|2,5,L|2,7,XL');

    gibi.

    2 ne işe yarıyor mesela bu array da hiç bir yerde kullanmamışsın