christian: assoziatives array zufällig sortieren

Hallo,
ich habe ein assoziatives array, welches ich zufällig sortieren möchte:

$test["javascript"]="text1";
$test["php"]="text2";
$test["html"]="text2";

shuffle() funktioniert leider nur bei numerischen arrays. Kennt jemand eine andere Möglichkeit?

  1. Hello,

    ich habe ein assoziatives array, welches ich zufällig sortieren möchte:

    $test["javascript"]="text1";
    $test["php"]="text2";
    $test["html"]="text2";

    shuffle() funktioniert leider nur bei numerischen arrays. Kennt jemand eine andere Möglichkeit?

    Kommt darauf an, was Du in Unordnung bringen willst.
    a) die Reihenfolge der Elemente in der Kette unter Beibehaltung der Indexe
    b) Die Zuordnung zwischen Indexen und Werten

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Kommt darauf an, was Du in Unordnung bringen willst.

      Ich will das Array in einer Schleife in zufälliger Reihenfolge auflisten:

      while (list(...)) {}

      Dazu muss die Reihenfolge des Arrays aber erstmal zufällig sortiert werden. Bei MySqL gibt es ORDER BY RAND(), was genauso funktioniert. Nur kommt mein array aus keiner Datenbank

      1. Hello,

        Kommt darauf an, was Du in Unordnung bringen willst.

        Ich will das Array in einer Schleife in zufälliger Reihenfolge auflisten:

        while (list(...)) {}

        a) nimm foreach() für die Anzeige.
           list() each() ist zwar nicht falsch, aber veraltet.

        Im Manual unter Shuffle() steht gleich als erstes eine UCN (User Contributed Note), die Du einfach kopieren kannst

        http://de3.php.net/manual/de/function.shuffle.php

        Zufälliger geht es mit PHP dann nicht...

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      2. Hallo,

        Ich will das Array in einer Schleife in zufälliger Reihenfolge auflisten:

        da, wie Tom sagt, shuffle bei assoziativen Arrays nix bringt,
        kann man es wie folgt loesen:

        <?php  
        $TT = array('a'=>'Asta','b'=>'Beate','c'=>'Carla','d'=>'Doris','e'=>'Eloise');  
        $K = array_keys($TT);  
        shuffle($K);  
        foreach($K as $key) {  
            echo $TT[$key]."\n";  
        }  
        ?>