Peter: Zufallsausgabe?

Hallo!

Ich stehe momentan in PHP total auf der Leitung. Ich habe ein array, aus welchem 3 zufällig ausgewählte Einträge bei jedem neu Laden der Seite ausgegeben werden sollen.

Kann mir jemand da von euch weiterhelfen?

Gruss
 Peter

  1. Hello,

    Ich stehe momentan in PHP total auf der Leitung. Ich habe ein array, aus welchem 3 zufällig ausgewählte Einträge bei jedem neu Laden der Seite ausgegeben werden sollen.

    Kann mir jemand da von euch weiterhelfen?

    Mach eine Kopie von Deinem Array, falls Du es noch im Original benötigst
    Lass es mischen http://de.php.net/manual/de/function.shuffle.php
    nimm drei Einträge daraus.

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hello,

      noch ein Nachtrag

      Mach eine Kopie von Deinem Array, falls Du es noch im Original benötigst
      Lass es mischen http://de.php.net/manual/de/function.shuffle.php
      nimm drei Einträge daraus.

      Wenn Du auch die Keys der drei zufälligen Werte behalten muss:

      Zieh die Keys des Originals mit Array_keys()
      misch dieses Array durch
      greif dann z.B. die ersten drei Elemente des Key-Arrays ab mit

      foreach()

      oder

      while ...
          list($key,$val) = each($key_array)
          if ... break

      Und greif dann damit auf das Originalarray zu.

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

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

  2. Hi,

    Ich stehe momentan in PHP total auf der Leitung. Ich habe ein array, aus welchem 3 zufällig ausgewählte Einträge bei jedem neu Laden der Seite ausgegeben werden sollen.

    Kann mir jemand da von euch weiterhelfen?

    du kannst das Array zufällig durcheinandermischen und die ersten drei Werte ausgeben:

      
    var_export(array_slice(shuffle($array),0,3));  
    
    

    Oder, etwas länger, dafür performanter, dir einen Zufallswert aussuchen, und den gewählten Eintrag in ein neues Array übernehmen, wobei darauf geachtet werden muss, dass man keinen Wert doppelt übernimmt: (funktioniert aber nur wenn die Keys fortlaufende Integer sind)

      
    $new_array = array();  
    while(count($new_array) < 3)  
    {  
        $key = rand(0,count($array)-1);  
        if (in_array($key,array_keys($new_array))) continue;  
        $new_array[$key] = $array[$key];  
    }  
    var_export($new_array);  
    
    

    (ungetestet)

    Schöne Grüße
    Julian

    1. Hi,

      var_export(array_slice(shuffle($array),0,3));

        
      Fehler:  
      
      > ~~~php
        
      shuffle($array)  
      
      > var_export(array_slice($array,0,3));  
      > 
      
      

      So stimmts.

      Schöne Grüße
      Julian