Bu kenar davayı nasıl ele hediye vermek için insanların bir dizi, Eşleştirme

0 Cevap php

Ben birbirlerine insanların bir dizi eşleşen ediyorum. Kendileri ile uyumlu olamaz ve her kişi sadece diğeri ile uyumlu olabilir. Ben bu çalıştı ama bir kenar durum haline çalıştırmak. Eşleşen kişi henüz karşılaştırılıre olmamıştır tek kişi kendileri ise, biz sıkışmış.

Örnek:

$names = array('Dad','Mom','Harrald','Yu','Sandra','Dave', 'Andy & Kim');
$drawn = array();
$tn = count($names)-1;
$i = mt_rand(0, $tn);

foreach ($names as $name) {        
    while($name == $names[$i] || in_array($names[$i], $drawn)) {
            $i = mt_rand(0, $tn);
    }
    echo $name. ' has ' . $names[$i].'<br />';
    array_push($drawn, $names[$i]);
}

This could produce:
Dad has Sandra
Mom has Yu
Harrald has Dave
... etc, etc.

Bu dizideki son eleman aldığında sorun, 'Andy & Kim ', eğer' Andy & Kim Andy & 'uyuşmuyor çünkü o zaman bir kenar durum var henüz $drawn, diziye eklenen tek unsur vardır' Kendilerine kim '. Benim örnekte bu o ise döngü içinde sıkışıp ve sonunda zaman aşımına uğruyor ... Ne demek istediğimi görmek alıyorum neden olabilir? Nasıl (benim annem kullanmak için maç-up komut veren bir hızlı hediye nakavt gitti ve bu potansiyel bir sorun olduğunu fark olarak bu benim kendi zevkim için yalnızca) bu idare ederim.

Ah, böyle bir deseni uygulamak için daha iyi yollar görmek için en ilginç olurdu. Thx!

0 Cevap