• 25-08-2015, 17:23:24
    #1
    Arkadaşlar şimdi iki dizi düşünün;

    1.Dizi: Ahmet,Hasan,İsmet -->Erkekler
    2.Dizi: Merve,Ayşe,Özlem -->Eşleri

    Diziye göre Ahmet-Merve,Hasan-Ayşe ve İsmet-Özlem birbirlerinin eşleri.İki dizinin mantığı tamamen böyle.Şimdi soruna geçelim..

    Ben shuffle() fonksiyonu ile iki diziyi aynı şekilde karıştıramıyorum.Çünkü shuffle(dizi1) gibi tek değişken alıyor.Bu sefer iki diziyi farklı farklı shuffle'a sokunca bu sefer random lar farklı olduğu için eşler karışıyor (Ahmet-Ayşe gibi)..

    Şimdi ben bu iki farklı dizinin elemanlarını,karşılıklı elemanlar yine karşı karşıya gelecek şekilde nasıl karıştırabilirim?

    Not: İki dizininde eleman sayısı aynı ve bu problem sadece iki diziyle kalmıyor,dizi sayısı çoğaltıldığında bile,örneğin dizide karıştırma yaptığımızda yine dizideki karşılıklı elemanlar karıştırmadan sonra karşı karşıya gelecek.
  • 25-08-2015, 19:06:47
    #2
    Dizi sayısı 2 ile sabit kalsa tamam ama dizi sayısı çoğalıyorsa sıkıntı...
  • 25-08-2015, 19:25:33
    #3
    cenkkoroglu adlı üyeden alıntı: mesajı görüntüle
    Dizi sayısı 2 ile sabit kalsa tamam ama dizi sayısı çoğalıyorsa sıkıntı...

    İşin güzelliğide tam burda işte


    Sent from my iPhone using Tapatalk
  • 25-08-2015, 19:34:31
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    iki dizinin tek bir dizidemi karışması gerekiyor?
  • 25-08-2015, 19:57:33
    #5
    $dizi1 = Array('Ahmet','Hasan','İsmet');
    $dizi2 = Array('Ahmet2','Hasan2','İsmet2');
    $dizi3 = Array('Ahmet3','Hasan3','İsmet3');
    $dizi4 = Array('Ahmet4','Hasan4','İsmet4');
    
    $random = range(1, count($dizi1));
    shuffle($random);
    array_multisort($random, $dizi1, $dizi2, $dizi3, $dizi4);
    			
    print_r(array_unique($dizi1));
    print_r(array_unique($dizi2));
    print_r(array_unique($dizi3));
    print_r(array_unique($dizi4));
  • 25-08-2015, 20:04:30
    #6
    sercander adlı üyeden alıntı: mesajı görüntüle
    iki dizinin tek bir dizidemi karışması gerekiyor?

    Hayır,

    echo dizi1[a]."-".dizi2[a] ;

    Dediğimde Eşlerin doğru olması gerekiyor ama bu iki dizide random veya shuffle işlemine uğrayacak.


    Sent from my iPhone using Tapatalk

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 20:04:30 -->-> Daha önceki mesaj 20:03:08 --

    cenkkoroglu adlı üyeden alıntı: mesajı görüntüle
    $dizi1 = Array('Ahmet','Hasan','İsmet');
    
    $dizi2 = Array('Ahmet2','Hasan2','İsmet2');
    
    $dizi3 = Array('Ahmet3','Hasan3','İsmet3');
    
    $dizi4 = Array('Ahmet4','Hasan4','İsmet4');
    
    
    
    $random = range(1, count($dizi1));
    
    shuffle($random);
    
    array_multisort($random, $dizi1, $dizi2, $dizi3, $dizi4);
    
    
    
    print_r(array_unique($dizi1));
    
    print_r(array_unique($dizi2));
    
    print_r(array_unique($dizi3));
    
    print_r(array_unique($dizi4));





    Hocam boş geldi mesaj


    Sent from my iPhone using Tapatalk
  • 25-08-2015, 20:08:01
    #7
    İlkini yanlış attım sonradan güncelledim tekrar deneyin bi. Yada bunu deneyin ikisi de çalışıyor.

    $dizi1 = Array('Ahmet','Hasan','İsmet');
    $dizi2 = Array('Ahmet2','Hasan2','İsmet2');
    $dizi3 = Array('Ahmet3','Hasan3','İsmet3');
    $dizi4 = Array('Ahmet4','Hasan4','İsmet4');
    
    $seed = rand();
    srand($seed);
    shuffle($dizi1);
    srand($seed);
    shuffle($dizi2);
    srand($seed);
    shuffle($dizi3);
    srand($seed);
    shuffle($dizi4);
    
    print_r(array_unique($dizi1));
    print_r(array_unique($dizi2));
    print_r(array_unique($dizi3));
    print_r(array_unique($dizi4));
  • 25-08-2015, 20:10:37
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Dizileri ayrı ayrı kullanmanızın amacı nedir, çoklu dizi kullansanız olmuyor mu?
  • 25-08-2015, 20:14:00
    #9
    Biraz uzun oldu ama ondan önce isteğiniz bu yönde miydi ?

    <?php
    
    $erkekler=array("Veli","Fuat","Furkan");
    $kadinlar=array("Aysel","Hacer","Fatma");
    $cocuklar=array("Berk","Oğuz","Haci");
    
    
    $diziyisay=count($erkekler);
    $diziyisay-=1;
    $rastgele1=rand(0,$diziyisay);
    $rastgele2=rand(0,$diziyisay);
    
    if($rastgele1 == $rastgele2){
    	if($rastgele1==0){
    	$rastgele1=1;
    	}else{
    		$rastgele1-=$rastgele2;
    	}
    }
    
    for($i=0;$i<count($erkekler);$i++){
    
    	
    
    	if($rastgele1==$i){
    	echo	 $sonuc1=$erkekler[$i] ."-". $kadinlar[$i]."-". $cocuklar[$i]."<br>";
    	}
    
    	if($rastgele2==$i){
    		echo $sonuc2=$erkekler[$i] ."-". $kadinlar[$i]."-". $cocuklar[$i]."<br>";
    	}
    
    }
    	
    
    
    ?>