#1 9. Dezember 2008 Wörter nur einmal benutzen Hiho Leute, vielleicht könnt ihr mir ja helfen. Wie schaffe ich es, das z.b. nur einmal "a vs. b" benutzt wird in dem Script? PHP: <? php $words = array( "a" , "c" , "e" ); $words2 = array( "b" , "d" , "f" ); srand ((float) microtime () * 1000000 ); shuffle ( $words ); shuffle ( $words2 ); echo "<b> $words [ 0 ] </b> vs. <b> $words2 [ 0 ] </b>" ; ?> Wenn mir jemand helfen kann wäre ich ihm sehr dankbar . + Multi-Zitat Zitieren
#2 9. Dezember 2008 AW: Wörter nur einmal benutzen Was genau möchtest du mit den beiden Arrays machen? Ich steig' nicht durch, sorry. + Multi-Zitat Zitieren
#3 9. Dezember 2008 AW: Wörter nur einmal benutzen Er möchte glaube ich alle aus array1 ($words) gegen alle aus array2 ($words2) "antreten" lassen... PHP: $teamA = array( "Spieler1a" , "Spieler2a" , "Spieler3a" ); $teamB = array( "Spieler1b" , "Spieler2b" , "Spieler3b" ); shuffle ( $teamA ); shuffle ( $teamB ); foreach( $teamA as $memberA ){ foreach( $teamB as $memberB ) { echo $memberA . " vs. " . $memberB ; }} // Edit: Hier falls du es anders gemeint haben solltest und du ein zufälliges one on one haben wolltest: (Die "Frage" ist doch etwas schwammig vormuliert...) PHP: $teamA = array( "Spieler1a" , "Spieler2a" , "Spieler3a" ); $teamB = array( "Spieler1b" , "Spieler2b" , "Spieler3b" ); shuffle ( $teamA ); shuffle ( $teamB ); foreach( $teamA as $memberA ){ echo $memberA . " vs. " . array_shift ( $teamB ) . "<br />\n" ;} + Multi-Zitat Zitieren
#4 9. Dezember 2008 AW: Wörter nur einmal benutzen Nein, schon einzeln... also A vs B C vs D E vs F aber ich möchte schon dass das per zufall passiert, deswegen ja shuffle. Aber jede Paarung soll nur einmal vorkommen. Also wenn ich das Script so wie es jetzt ist benutze, ist ja die Chance da, das z.b. A vs. D nochmal antritt, aber A wurde schon ausgewählt, also sollte A nichtmehr vorkommen. Also die Paarung, die bereits steht, streichen. Es ist blöd zu erklären..:/ + Multi-Zitat Zitieren
#5 9. Dezember 2008 AW: Wörter nur einmal benutzen PHP: function getNewPair ( $firststring , $secondarray , $results ){ $rand = mt_rand ( 0 , count ( $secondarray )- 1 ); $return = $firststring . " v. " . $secondarray [ $rand ]; if ( in_array ( $return , $results )) $return = getNewPair ( $firststring , $secondarray , $results ); else return $return ;} $first = array( "a" , "c" , "e" , "g" ); $second = array( "b" , "d" , "f" , "h" ); $results = array(); foreach ( $first as $value ){ echo getNewPair ( $value , $second , $results ). "<br />" ;} Da ich mir immer nochnicht sicher bin, was du suchst, habe ich mal das gemacht =P Schau mal, ob es ist, was du gesucht hast - du brauchst aber auf jeden Fall eine rekursive Funtion (= eine Funktion, die sich selber aufruft), dann kannst du diese Ketten auf "vorhanden" überprüfen und einen neuen String generieren. + Multi-Zitat Zitieren
#6 10. Dezember 2008 AW: Wörter nur einmal benutzen PHP: <? php$words = array( "a" , "c" , "e" ); $words2 = array( "b" , "d" , "f" ); shuffle ( $words2 ); foreach( $words2 as $w ) { print array_shift ( $words ). ' vs. ' . $w ;} ?> ? Oder was meinst du^^ Wenn du das erste Array auch random haben willst pack das shuffle wieder rein, aber ich denk mal wenn du das nach'm Alphabet oder so geordnet hast dann isses so praktischer, so haste wenigstens das erste immer noch geordnet... + Multi-Zitat Zitieren