• 24-01-2015, 18:19:40
    #10
    Alıntı
    $array['nosub']=array("bir");
    $array['nosub']=array("iki");
    $array['nosub']=array("uc");
    Demişsin, bu akışta en son durumda

    Alıntı
    echo $array['nosub'];
    yazarsan sana array("uc"); döner. Yani önceki verinin üstüne yazar, değişken tanımlıyorsun sonuçta. Onları tek bir key üzerinde birleştirmek için yapman gereken

    Alıntı
    $array[$partIsim]=array($partVerisi);
    yerine

    Alıntı
    $array[$partIsim][]=$partVerisi;
    kullanmak. Eğer sorununu doğru anlattıysan geçerli çözüm bu şekilde.
  • 24-01-2015, 18:30:58
    #11
    by_antiseptic adlı üyeden alıntı: mesajı görüntüle
    Demişsin, bu akışta en son durumda



    yazarsan sana array("uc"); döner. Yani önceki verinin üstüne yazar, değişken tanımlıyorsun sonuçta. Onları tek bir key üzerinde birleştirmek için yapman gereken



    yerine



    kullanmak. Eğer sorununu doğru anlattıysan geçerli çözüm bu şekilde.
    dediğiniz şekilde oldu fakar for döngüsü içinde çalıştıgı için. şöyle bir sonuç çıktı
    array('bir');
    array('iki');
    array('uc');
    array('bir','iki','uc');
    array('dort');
    sadece su sekilde sonuc verse tamamdır.
    array('bir','iki','uc');
    array('dort');
  • 24-01-2015, 18:37:47
    #12
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar, $array değişkenimde aynı key değerim varsa birleştirmem gerekiyor örneğin.
    #benim dizim $array, key değişkenimde $partIsim
    $array[$partIsim]=array($partVerisi);
    şu şekilde olabiliyor.
    $array['nosub']=array("bir");
    $array['nosub']=array("iki");
    $array['nosub']=array("uc");
    $array['tr']=array("dort");
    ben tekrarlayanları birleştirip şu şekilde yapmak istiyorum.
    $array['nosub']=array("bir","iki","uc");
    $array['tr']=array("dort");
    bu konuda yardımcı olabilir misiniz arkadaşlar.


    $array = array();
    if( array_key_exists( $key, $array ) )
        array_push( $array[$key], $value );
    else
        $array[$key] = array( $value );
    Umarım doğru anlamışımdır
  • 24-01-2015, 19:39:21
    #13
    inspectorrr adlı üyeden alıntı: mesajı görüntüle
    $array = array();
    if( array_key_exists( $key, $array ) )
        array_push( $array[$key], $value );
    else
        $array[$key] = array( $value );
    Umarım doğru anlamışımdır
    yok hocam tam olarak kastetigim bu degil tam olarak istedigim.
  • 24-01-2015, 20:56:11
    #14
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    dediğiniz şekilde oldu fakar for döngüsü içinde çalıştıgı için. şöyle bir sonuç çıktı
    array('bir');
    array('iki');
    array('uc');
    array('bir','iki','uc');
    array('dort');
    sadece su sekilde sonuc verse tamamdır.
    array('bir','iki','uc');
    array('dort');
    Kodun tamamını görmem gerek, yukarıda yazdığın kadarıyla böyle bir sonuç çıkmaması gerekiyor.
  • 24-01-2015, 21:06:42
    #15
    by_antiseptic adlı üyeden alıntı: mesajı görüntüle
    Kodun tamamını görmem gerek, yukarıda yazdığın kadarıyla böyle bir sonuç çıkmaması gerekiyor.
    pm ile ilettim kodları hocam.
  • 24-01-2015, 23:26:19
    #16
    @by_antiseptic; teşekkür ederim. halletti sorunumu. for döngüsü dışına taşıdı array ve foreach ile halletik yalnız
    for(döngü içi bilgiler){
    $array[$partIsim][]=$partVerisi;
    }
    foreach($array as $partIsim=>$data) {
    $partVerim=serialize($data);
     
    echo '<b>'.$partIsim.'</b><br>
    '.$partVerim.
    '
    <br>
    ';
    }
    foreach tekinde de $partIsim kullanmak şartmıydı hem for da hemde foreach te kullandık.
  • 01-02-2015, 23:14:48
    #17
    @by_antiseptic; hocam malesef şöyle bir sorunla karşılaştım.
    <?php
    $spef_part = array('360p', '480p', '720p', '1080p', 'tr', 'subtitle', 'download', 'nosubtitle');
    $newArray = array();
    $array = array();
    $array['720p'][]=array('bir','iki');
    $array['tr'][]=array('uc');
    $array['subtitle'][]=array('dort');
    $array['1080p'][]=array('bes','alti','yedi');
    $array['Alternatif'][]=array('sekiz');
    $array['Part'][]=array('dokuz','on');
    #burdyım.
    foreach($spef_part as $sp)
    {
    	if(array_key_exists($sp, $array))
    	{
    		echo $sp.'<br>';
    		$newArray[$sp] = true;
    		//break; 
    	}
    	else
    	{
    $newArray=array('tr'=>true);	
    	//$echo='a:1:{s:2:"tr";b:1;}';
    	}
    }
    
    $echo=serialize($newArray);
    echo '<br><b>'.$echo.'</b><br>';
    ?>
    #çıktısı: a:1:{s:2:"tr";b:1;}
    #olması gereken: a:4:{s:4:"720p";b:1;s:2:"tr";b:1;s:8:"subtitle";b:1;s:10:"nosubtitle";b:1;}
    #yani $spef_part dizisinde eşleşenleri serialize etmem gerekiyor. olmadı bir türlü.
  • 02-02-2015, 11:06:13
    #18
    <?php
    $spef_part = array('360p', '480p', '720p', '1080p', 'tr', 'subtitle', 'download', 'nosubtitle');
    $newArray = array();
    $array = array();
    $array['720p'][] = array('bir','iki');
    $array['tr'][] = array('uc');
    $array['subtitle'][] = array('dort');
    $array['1080p'][] = array('bes','alti','yedi');
    $array['Alternatif'][] = array('sekiz');
    $array['Part'][] = array('dokuz','on');
    #burdyım.
    foreach($spef_part as $sp) {
    	if (array_key_exists($sp, $array)) {
    		$newArray[$sp] = true;
    	}
    }
    if (empty($newArray)) {
    	$newArray = array('tr'=>true);
    }
     
    echo'<pre>';
    print_r($newArray);
    ?>
    else kısmını kaldırıp döngü sonrasına boş mu kontrolü yaparsan istediğin gibi olur. örnek kodu verdim zaten.
    kolay gelsin