Random array geht nicht

  • Hallo,
    ich habe ein Problem. Ein scriptcode soll 4 Objekte aus einem Array zufällig auswählen dann übergeben. Es sind insgesamt 24 Objekte im Array und das Problem ist, dass eben all diese 24 dargestellt werden und nicht nur 4 zufällige aus dem Array.


    Code
    $propertiesToShow = array(31,32,131,132,134,135,136,139,140,142,147,148,149,150,151,152,153,154,155,157,158,160,162,163);
    $p = array_rand($propertiesToShow, 4);
    echo $propertiesToShow[$p[0]] . "\n";
    echo $propertiesToShow[$p[1]] . "\n";


    Wo steckt der Fehler?

  • Versteh nicht ganz. Wenn ich deine Zeilen debugge, werden mir final 2 Werte ausgegeben (bei dir Zeilen 3 und 4) und lediglich 4 mögliche Keys befinden sich im $p:


    Ausgabe des Codes. Letzten 2 Zeilen sind die beiden Werte $propertiesToShow[$p[x]]

  • Versteh nicht ganz. Wenn ich deine Zeilen debugge, werden mir final 2 Werte ausgegeben (bei dir Zeilen 3 und 4) und lediglich 4 mögliche Keys befinden sich im $p:


    Ausgabe des Codes. Letzten 2 Zeilen sind die beiden Werte $propertiesToShow[$p[x]]

    Hi Re:Later,


    ja eben. Es sind zwei, sollten aber 4 Werte sein die am Schluss rauskommen.

  • Du gibst doch aber nur 2 Werte aus dem Array mit echo aus und nicht 4.

    $p enthält 4 Werte.


    Du verwendest aber nur

    $p[0]

    und

    $p[1]


    . Wennst vier willst, musst halt auch noch


    $p[2]

    und

    $p[3]


    verwenden.


    Bisschen flexibler:

    Code
    for ($i = 0; $i < count($p); $i++)
    {
        echo $propertiesToShow[$p[$i]] . "\n";
    }

    Gibt in unserem Fall 4 Werte aus.