Hallo,
ich will eine Zufallsnummer erzeugen die niemals gleich mit Zahlen aus einem Array ist. Den Zufall lasse ich über eine while Schleife laufen wie beispielsweise das hier
Notiz: mt_rand fängt dabei bei minus an. Ich weiß nicht ob das später ein Problem darstellen sollte.
Das Beispiel oben funktioniert soweit $Startplanet['Startplanet']['X'] 1 Element enthält.
Was macht der while loop wenn $Startplanet['Startplanet']['X'] mehr als 1 Element enthält?
Durchläuft es alle Elemente aus dem $Startplanet['Startplanet']['X'] Array und gibt mir zum Schluss eine Zahl aus die trotzdem gleich dem ersten Element aus dem Array sein kann?
Notiz: $Startplanet['Startplanet']['X'] kann mehrere hundert keys besitzen.
Theoretisch würde ich die while Schleife so aussehen lassen. D.h. die Bedingung soll alle value aus dem Array haben (die jeweils kleiner Zahl-50 & großer Zahl+50 sind).
Leider habe ich kein Plan wie ich das schreiben soll. Führt php ein foreach in einer while Bedingung aus?
Ich habe schon überlegt das Array als eine Zeile auszugeben und das denn über die while Bedingung laufen zu lassen aber ich habe das Gefühl, das dies auch nicht funktionieren wird.
Gruß
ich will eine Zufallsnummer erzeugen die niemals gleich mit Zahlen aus einem Array ist. Den Zufall lasse ich über eine while Schleife laufen wie beispielsweise das hier
PHP-Code:
$Startplanet['Startplanet']['X'] = ( mt_rand( (-$galaxy_width), ($galaxy_width) ) );
while($Startplanet['Startplanet']['X'] > $von_X AND $Startplanet['Startplanet']['X'] < $bis_X) {
$Startplanet['Startplanet']['X'] = ( mt_rand( (-$galaxy_width), ($galaxy_width) ) );
}
Das Beispiel oben funktioniert soweit $Startplanet['Startplanet']['X'] 1 Element enthält.
Was macht der while loop wenn $Startplanet['Startplanet']['X'] mehr als 1 Element enthält?
Durchläuft es alle Elemente aus dem $Startplanet['Startplanet']['X'] Array und gibt mir zum Schluss eine Zahl aus die trotzdem gleich dem ersten Element aus dem Array sein kann?
Notiz: $Startplanet['Startplanet']['X'] kann mehrere hundert keys besitzen.
Theoretisch würde ich die while Schleife so aussehen lassen. D.h. die Bedingung soll alle value aus dem Array haben (die jeweils kleiner Zahl-50 & großer Zahl+50 sind).
PHP-Code:
$zufall = ( mt_rand( (-$galaxy_width), ($galaxy_width) ) );
while(
$zufall > $X_zahl1-50 AND
$zufall < $X_zahl1+50 AND
$zufall > $X_zahl2-50 AND
$zufall < $X_zahl2+50
//AND
//...
) {
$zufall = ( mt_rand( (-$galaxy_width), ($galaxy_width) ) );
}
Ich habe schon überlegt das Array als eine Zeile auszugeben und das denn über die while Bedingung laufen zu lassen aber ich habe das Gefühl, das dies auch nicht funktionieren wird.
PHP-Code:
$count_x = count($oCoords_S['oCoord']['Startplanet']['x']);
$a1 = 0;
$X = '';
foreach ($oCoords_S['oCoord']['Startplanet']['x'] as $key => $value) {
if(++$a1 === $count_x) {
$X .= $value.'';
} else {
$X .= $value.', ';
}
}
Gruß
Kommentar