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.
Zeka Sorusu Tadında PHP Sorusu [Ücretli]
28
●1.725
- 25-08-2015, 19:06:47Dizi sayısı 2 ile sabit kalsa tamam ama dizi sayısı çoğalıyorsa sıkıntı...
- 25-08-2015, 19:25:33cenkkoroglu adlı üyeden alıntı: mesajı görüntüle
İşin güzelliğide tam burda işte
Sent from my iPhone using Tapatalk - 25-08-2015, 19:57:33
$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:30sercander adlı üyeden alıntı: mesajı görüntüle
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
Hocam boş geldi mesaj
Sent from my iPhone using Tapatalk - 25-08-2015, 20:08:01İ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:14:00Biraz 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>"; } } ?>
