• 15-02-2015, 12:08:51
    #1
    İyi günler, veritabanından çektiğim veriler ile foreach e aktardığım arrayi karşılaştırmam lazım her birini tek tek. Kodları aşağıda veriyorum.
    Yapmaya çalıştığım veritabanından eşleşen isimlerin part_contentlerini array_merge ile birleştirmek istiyorum fakat izlediğim yol şimdilik istediğim sonucu vermiyor. bütün $partlarim['part_name']; olanları birleştiriyor malesef.
    $array[$partIsim][]=$partVerisi;
    $part_gel=mysql_query("SELECT part_name, part_content FROM parts WHERE video_id = '$dizi_var[0]'");
    $pzrt=array();
    $pzrt_name=array();
    while($partlarim=mysql_fetch_assoc($part_gel))
    {
    /**/
    $pzrt[]=unserialize($partlarim['part_content']);
    $pzrt_name[]=$partlarim['part_name'];
    $pzrt_name=array_unique($pzrt_name);
    $pzrt=array_unique($pzrt);
    foreach($array as $partIsim=>$data) {
    if (in_array($partIsim, $pzrt_name)) {
    echo $partIsim.'<br>';
    
    $data=array_merge($data,$pzrt);
    $partVerim=serialize($data);
    //echo $partVerim;
    }
    /**/
    
    }
    }
    Ekleme
    Parts tablom

    $partIsim verim
    Alternatif #6
    Alternatif #7
    720p
  • 16-02-2015, 01:26:12
    #2
    in_array yerine array_search kullanmalısın.
    $indis=array_search($partIsim, $pzrt_name);
    if(isset($indis) && $indis!==false) {
    $data=array_merge($data,$pzrt[$indis]);
    }
  • 16-02-2015, 11:57:57
    #3
    Seyranli adlı üyeden alıntı: mesajı görüntüle
    in_array yerine array_search kullanmalısın.
    $indis=array_search($partIsim, $pzrt_name);
    if(isset($indis) && $indis!==false) {
    $data=array_merge($data,$pzrt[$indis]);
    }
    Aşağıdaki gibi denedim fakat.
    $array[$partIsim][]=$partVerisi;
    $part_gel=mysql_query("SELECT part_name, part_content FROM parts WHERE video_id = '$dizi_var[0]'");
    $pzrt=array();
    $pzrt_name=array();
    /**/
    while($partlarim=mysql_fetch_assoc($part_gel))
    {
    /**/
    $pzrt[]=unserialize($partlarim['part_content']);
    $pzrt_name[]=$partlarim['part_name'];
    $pzrt_name=array_unique($pzrt_name);
    //$pzrt=array_unique($pzrt);
    foreach($array as $partIsim=>$data) {
    $indis=array_search($partIsim, $pzrt_name);
    if(isset($indis) && $indis!==false) {
    $pzrt[$indis]=array_unique($pzrt[$indis]);
    $data=array_unique($data);
    $data=array_merge($data,$pzrt[$indis]);
    $partVerim=serialize($data);
    echo $partVerim;
    }
    }
    }
    şeklinde çift sonuç aldım. Tekrarlıyor normalde vk ve mailru iki embedi olması lazım çift oldu her birinden.
    Alıntı
    a:2:{i:0;s:156:"<iframe src=\"http://vk.com/video_ext.php?oid=251156974&id=168766616&hash=2cb1 95ebc6c657c6&hd=1\" width=\"100%\" height=\"100%\" frameborder=\"0\"></iframe>";i:1;s:134:"<iframe src="http://videoapi.my.mail.ru/videos/embed/mail/dizinus20/166/167.html" width="100%" height="100%" frameborder="0"></iframe>";}a:2:{i:0;s:156:"<iframe src=\"http://vk.com/video_ext.php?oid=251156974&id=168766616&hash=2cb1 95ebc6c657c6&hd=1\" width=\"100%\" height=\"100%\" frameborder=\"0\"></iframe>";i:1;s:134:"<iframe src="http://videoapi.my.mail.ru/videos/embed/mail/dizinus20/166/167.html" width="100%" height="100%" frameborder="0"></iframe>";}
  • 16-02-2015, 21:00:52
    #4
    Dostum kusura bakma sürekli giremiyorum foruma.
    $pzrt_name=array_unique($pzrt_name);
    $pzrt=array_unique($pzrt);
    şu satırlardan dolayı indisler değişiyor olabilir.

    Bu satırları geçici olarak kaldırıp dener misin. Yine olmazsa while içinden gelenleri bir dizide biriktirip serialize ile verirsen kendim de bir denerim
  • 17-02-2015, 19:53:19
    #5
    Seyranli adlı üyeden alıntı: mesajı görüntüle
    Dostum kusura bakma sürekli giremiyorum foruma.

    $pzrt_name=array_unique($pzrt_name);

    $pzrt=array_unique($pzrt);

    şu satırlardan dolayı indisler değişiyor olabilir.



    Bu satırları geçici olarak kaldırıp dener misin. Yine olmazsa while içinden gelenleri bir dizide biriktirip serialize ile verirsen kendim de bir denerim
    Pm ile kodlari iletmistim bakma firsatiniz oldu mu acaba. Baska yardimci olabilecek arkadaslarda varsa yardimlariniz beklemekteyim arkadaslar
  • 17-02-2015, 20:35:47
    #6
    while içinde foreach kullanıldığından bir defa dizide sonuç bulunca bundan sonraki her while döngüsünde yine sonuç bulacağından yanlış sonuç çıkıyormuş.

    while($partlarim=mysql_fetch_assoc($part_gel))
    {
    $i++;
    /**/
    $pzrt[$i]=unserialize($partlarim['part_content']);
    $pzrt_name[$i]=$partlarim['part_name'];
    }
    
    foreach($array as $partIsim=>&$data) {
    $indis=array_search($partIsim, $pzrt_name);
    if(isset($indis) && $indis!==false) {
    $data=array_merge($data,$pzrt[$indis]);
    $data=array_unique($data);
    }
    $partVerim=serialize($data);
    echo $partIsim.' => '.$partVerim.'<br>'."\n";
    }
    şu şekilde bakarsanız tüm partları listelettim, eğer aynı olan varsa 2 iframe geldi yoksa tek iframe devam etti.