AllesMeins: shuffle() gibt immer den selben Array zurück...

Hiho,

ich lasse auf meinem kleinen Test-System (Win 2000, Apache, PHP Version 4.2.3) folgendes Script laufen:

//Zugedekt array anlegen
$array = array();

for($i = 0;$i < 16;$i++){
 for($j = 0;$j < 21;$j++){
  $array[] = $i . "-" . $j;
 }
}
shuffle($array);
print_r($array);

Naja. Der Array ist zwar nicht in der ursprünglichen Reihenfolge, aber jedesmal in der selben:

Array ( [0] => 13-16 [1] => 1-12 [2] => 13-12 [3] => 1-8 [4] => 15-6 [5] => 10-11 [6] => 15-5 [7] => 7-14 [8] => 13-15 [9] => 4-9 [10] => 15-18 [11] => 9-4 [12] => 12-5 [13] => 3-2 [14] => 15-14 [15] => 7-10 [16] => 15-2 usw...)

Irgendwelche Ideen was ich falsch gemacht habe.

Grüsse

Marc

  1. Hallo,

    [PHP Version 4.2.3]
    shuffle($array);
    Naja. Der Array ist zwar nicht in der ursprünglichen Reihenfolge, aber jedesmal in der selben:

    Obwohl es gemaess dem Manual seit PHP 4.2.0 nicht mehr
    notwendig sei, kannst Du ja versuchen, mit srand()
    den Zufallsgenerator "durchzuschuetteln", bevor Du
    shuffle() anwendest.

    http://www.php.net/manual/en/function.shuffle.php
    http://www.php.net/manual/en/function.srand.php

    Vielleicht ist da in Deiner 4.2.3 doch noch ein Bug, keine Ahnung.

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. Hiho,

      srand() bringt auch nichts. Es liefert genau den selben Array zurück, egal ob mit oder ohne srand().
      Irgend eine andere Idee wie ich nen Array richtig mischen kann?

      Grüsse

      Marc