for schleife

martin-schulz

Mitglied
Hallo

Ich habe mir ein kleines script geschrieben um per zufall 1 namen aus einer Liste auszugeben.

PHP:
<? php
  $zufallsContainer = array();
  $zufallsContainer[0] = 'Maik Heger';
  $zufallsContainer[1] = 'Daniela L&ouml;we';
  $zufallsContainer[2] = 'Ina Breisch';
  $zufallsContainer[3] = 'Sindy G&uuml;nther';

  $zufallsZahl = rand(0, count($zufallsContainer)-1);
}

?>

dies funktioniert auch.

Nun möchte ich aber das 3 unterschiedliche Namen hinterneinander ausgegeben werden.

Irgendwie stehe ich grade auf dem schlauch und komme nicht weiter.

Hat jeman einen ansatz für mich. (Ich weiss das dies durch eine fro schleife zu lösen ist, aber weiss nicht an welcher stelle und wie ich diese einzubauen habe)

D A N K E
 
PHP:
  $zufallsContainer = array();
  $zufallsContainer[0] = 'Maik Heger';
  $zufallsContainer[1] = 'Daniela L&ouml;we';
  $zufallsContainer[2] = 'Ina Breisch';
  $zufallsContainer[3] = 'Sindy G&uuml;nther';

  $zufallsZahl = rand(0, count($zufallsContainer)-1);

   $names = array();
   

do{
	
	$currName = $zufallsContainer[rand(0, count($zufallsContainer)-1)];
	$names[] = $currName;
}while(!in_array($currName, $names) && count($names)<=3);

die 3 Namen stehen hinterher natürlich im Array $names
und können hinterher ausgegeben werden^^

Achja ich ahbe übrigens keine for schleife
sondern ne fußgesteuerte while-schleife
aka. do-while-schleife verwendet.
 
Zuletzt bearbeitet:
gib es doch mal über print_r(); aus...
evtl. hilft dir das ja.
theoretisch müssten die namen über
PHP:
$names[0-2]; // ausgegeben werden können^^
natürlich muss 0-2 durch eine zahl
im bereich von 0 bis 2 ersetzt werden^^
 
Kleiner logik fehler ;)
PHP:
  $zufallsContainer = array();
  $zufallsContainer[0] = 'Maik Heger';
  $zufallsContainer[1] = 'Daniela L&ouml;we';
  $zufallsContainer[2] = 'Ina Breisch';
  $zufallsContainer[3] = 'Sindy G&uuml;nther';

  $zufallsZahl = rand(0, count($zufallsContainer)-1);

   $names = array();
   

do{
	
	$currName = $zufallsContainer[rand(0, count($zufallsContainer)-1)];
	if(!in_array($currName, $names))
	{
		$names[] = $currName;
	}
}while(count($names)<=3);

Nu müssts aber laufen ;)

so ginge es übrigens auch einfach mit ner while-schleife^^
 
Zuletzt bearbeitet:
Zurück