Thoralf: Problem mit 2 verschachtelten Schleifen

Beitrag lesen

Hi,

Warum willst Du das 150 Mal machen?
Einmal (vor der Schleife) reicht.
Dadurch kann es passieren, daß Du immer wieder die gleiche "Zufallszahl" bekommst.

Hm es hatte bisher geklappt, habs aber trotzdem geändert :)

$icons = array_unique ($icons);

siehe oben, wenn Du immer wieder die selbe Zufallszahl bekommst, schmeißt Du hier alle Duplikate weg ==> ein einziger Eintrag.

Da ich bisher keine Duplikate hatte war diese Function zwar überflüssig, ich hab sie aber zur Sicherheit eingebaut.

Mein Problem liegt jetzt einfach darin das die ganze schleife nur einmal durchlaufen wird

Woraus schließt Du das? Weil Du die Duplikate wegschmeißt?

Nein weil die function zur Ausgabe an der falschen Stelle war ;).
Das Printen des Arrays muss ja zwangsläufig innerhalb der ersten Schleife erfolgen da ja sonst das Array ständig überschrieben wird und demzufolge nachher bei der Ausgabe nur ein Array existiert.
Dadurch ergibt sich aber das Problem das beim nächsten durchlauf der ersten Schleife das schon ausgegebene Array immer wieder überschrieben wird und die Anzahl der Elemente sich selber hochzählen. Dadurch hab ich schon Ziemlich am Anfang, nämlich dann wenn zum ersten mal die Zahl 10 bei der Anzahl auftaucht, ständig 10 Elemente.
Lange Rede Kurzer Sinn, das script funktioniert jetzt.
Hier nochmal das "richtige" Script.

<?php
 $durchlauf = 150;
 srand ((double)microtime()*1000000);

for ($i=0; $i < $durchlauf; $i++)
 {
  $anzahl = rand(1,10);
  for ($j=0; $j < $anzahl; $j++)
  {
   $icon = rand(1,32);
   $icons[$j] = $icon;
  }
  $icons = array_unique ($icons);
  natsort ($icons);
  $print = print_R($icons)."<br>\n";
  unset($icons);
  echo $print;
 }
?>

Ob das jetzt wirklich so richtig ist, weis ich nich. Auf jeden fall tuts jetzt genau das was ich will ;))

MfG Thoralf