Mattes: Zufällig aus array auswählen

Beitrag lesen

$allowed = array(1,2,3,4,5,6,7,8);

shuffle($allowed);
$rand_chars = array_rand($allowed, 4);
foreach($rand_chars AS $char)

  

> Soweit alles Klar ich wähle zufällig 4 keys aus dem $allowed Array aus und gebe sie aus.  
  
Nein, du machst da noch mehr: Du schüttelst erstmal dein Losbeutelchen (shuffle), anschließend schüttelst du nochmal dein Losbeutelchen und greifst vier Lose raus (array\_rand).  
  
Das ist einmal Schütteln zu viel. Der Zufall wird nicht zufälliger, wenn man zweimal auf ihn stößt.  
  

> Aber gibt es eine möglichkeit auch die übergebliebenen Keys auszuwählen  
  
Werfe das zweite Schütteln raus und benutze einfach die ersten vier Einträge als die eine Gruppe und den Rest als die zweite. Insgesamt in etwa so:  
  
~~~php
$allowed = array(1,2,3,4,5,6,7,8);  
shuffle($allowed);  
for ($i = 0; $i < 4; $i += 1) { // mal angenommen, $allowed ist immer größer 4 Einträge  
  echo $allowed[$i];  
}  
for ($i = array_size($allowed) - 1; $i >= 4; $i -= 1) {  
  echo $allowed[$i];  
}