Zufallsausgabe?
Peter
- php
0 Tom0 Tom
0 Julian von Mendel
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
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
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
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
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