phillip: [PHP] jeder gegen jeden

moin!

ich habe 2 arrays aus 2 mal den selber sql auslesen mit also jeweils den gleichen inhalten. mit 2 schleifen lasse ich "jeder gegen jeden spielen"

while ($row1 = mysql_fetch_array($outkram_aa))
            {
             while ($row2 = mysql_fetch_array($outkram_bb))
              {
               if ($row1["userid"] !== $row2["userid"])
                {
                 echo "Match: ".$row1["userid"]." : ".$row2["userid"]."<br>";
                }
              }
             @mysql_data_seek($outkram_bb, 0);
             }
           @mysql_data_seek($outkram_aa, 0);

das funktioniert soweit, nur spielt dann quasi jeder 2 mal gegen jeden. zb:
1:2 und 2:1

hat jemand eine idee wie ich das ändern kann?
vielen dank,

phillip

  1. Guten Abend!

    ich habe 2 arrays aus 2 mal den selber sql auslesen mit also jeweils den gleichen inhalten.

    "aus 2 mal den selber sql auslesen"? Mich beschleicht manchmal der Verdacht, die berühmten chinesischen Bedienungsanleitungen werden gar nicht von chinesischen Automaten gemacht...

    mit 2 schleifen lasse ich "jeder gegen jeden spielen"
    das funktioniert soweit, nur spielt dann quasi jeder 2 mal gegen jeden. zb:
    1:2 und 2:1

    Dein Quadratansatz funktioniert nicht, weil in so einem Quadrat bei gleichen Achsen jeder Achsenwert logischerweise doppelt vorkommt, einmal auf der x-, einmal auf der y-Achse:

    1  2  3
    1 11 21 31
    2 12 22 32
    3 13 23 33

    Ergibt:

    12 13 23
    21 31 32

    Du musst statt eines Quadrats eine Linie nehmen:

    1 2 3 4

    Lasse erst 1 gegen alle Folgenden spielen, dann 2 gegen alle folgenden, und so weiter, bis Du beim letzten Feld angekommen bist:

    12 13 14 23 24 34

    Programm:

      
    for (i = 0; i < sizeof(a) - 1; i++) {  
        for (j = i; j < sizeof(a) - 1; j++) {  
            echo a[j] . " : " . a[j + 1];  
        }  
    }  
    
    

    Nicht ausprobiert, die Richtung sollte aber stimmen.