Örnek array;
$arr = array('1', '1', '1', '1', '2' '2' ,'3' ,'3' ,'4','5');
Bu dizeden benzersiz eleman çekmek istiyorum elde etmek istediğim sonuç;
array('1','2','3'); // arr dizesinden benzeriz 3 eleman.
Şimdiden herkese teşekkürler.
Edit: Yapmak istediğim şey;
1 gelme olasılığı %50
2 gelme olasılığı %30
3 gelme olasılığı %100
4 gelme olasılığı %10
5 gelme olsuluğı %60
diyelim. Bunları array içine 1 i 50 defa, 2 yi 30 defa, 3 ü 100 defa push ettiriyorum sonra random olarak ekrana basıyorum ama işte benzersiz olma koşulunu koyamıyorum...
Array dize içinden benzersiz 10 eleman
6
●73
- 06-12-2020, 19:55:51Kod olarak degilde mantiksal anlatayim
Farkli bir array olusturun ic ice foreach kurun if kontrolu ile array1 icindekilerle array2 icindekileri kontrol ettirin eger yoksa array2 ye kaydedin. - 06-12-2020, 19:58:43O mantıkta olmuyor evet çalışır da yapmak istediğim o değil..awoken adlı üyeden alıntı: mesajı görüntüle
1 gelme olasılığı %50
2 gelme olasılığı %30
3 gelme olasılığı %100
4 gelme olasılığı %10
5 gelme olsuluğı %60
diyelim. Bunları array içine 1 i 50 defa, 2 yi 30 defa, 3 ü 100 defa push ettiriyorum sonra random olarak ekrana basıyorum ama işte benzersiz olma koşulunu koyamıyorum... Çıldırttı.. - 06-12-2020, 20:00:26Aynen o şekilde yapıyorum şuan ama işte işin içine yüzde mevzusu girince benzer elemanları kafadan elemiyorum.. O yüzden patlıyorburakonline95 adlı üyeden alıntı: mesajı görüntüle
- 06-12-2020, 20:08:49Üyeliği durdurulduYanlış anlamadıysam bu push edilen veriler arasından 3 tane seçilecek. Ama aynı iki şey gelmeyecek? Şöyle yapılabilir:XAWeb adlı üyeden alıntı: mesajı görüntüle
$oranlar = [ '1' => 50, '2' => 30, '3' => 100, '4' => 10, '5' => 60 ]; $secim_sayisi = 3; $arr = []; foreach($oranlar as $sayi => $oran) { $arr = array_merge($arr, array_fill(0, $oran, $sayi)); } $secimler = []; for($i = 0; $i < $secim_sayisi; $i++) { $secim = $arr[array_rand($arr)]; $arr = array_diff($arr, [$secim]); array_push($secimler, $secim); } print_r($secimler); - 06-12-2020, 20:11:36Şahanesin ellerine sağlık array_diff bunu not aldımawoken adlı üyeden alıntı: mesajı görüntüle