ugrás a tartalomhoz

Mappa tartalmát tömbbe beletéve megjeleníteni 4x random

Km4t3 · 2006. Okt. 30. (H), 12.18
Sziasztok!
tegnap este, vagyis ma hajnalban :) írtam ezt a kódot:

<?php
	$userdir      = "flash";
	$handle       =  opendir($userdir);

	while ($file = readdir($handle))
		{
		if ($file != "." && $file != "..")
			{
			$tomb[] = $file;
			}
		}
		
		srand(time());

		$sizeof = count($tomb);

		$random = rand(0, $sizeof - 1);

	print("$tomb[$random]");
?>
az lenne a kérdésem, hogy lehetne 4 random eredményt kicsikarni ebből az egy programból? Anélkül, hogy négyszer beírogatnám ugyanezt más változókkal...?
előre is köszönöm!
 
1

ciklus

kerzo · 2006. Okt. 30. (H), 12.43
Én először megpróbálkoznék egy ciklussal, ami négyszer hajtja végre a véletlenszám generálást és kiíratást. pl.:
for ( $i=1; $i<=4; $i++) {
    $random = rand(0, $sizeof - 1);
    print("$tomb[$random]");
}

Aztán ha ez megy, akkor érdemes azon elgondolkodni, hogy vajon mekkora az esélye annak, hogy egy cikluson belül kétszer ugyan azt a számot adja ki. Ebben az esetben érdemes még egy feltételt beletenni, ahol in_array() függvénnyel megnézed, hogy a szám szerepel-e a tömbben.
2

gondolkozz!

Anonymous · 2006. Okt. 30. (H), 12.45
$i = 0;
while( $i++ < 4) {
  $random = rand(0, count($tomb) - 1);
  print $tomb[$random];
  unset($tomb[$random]);
}
3

ciklus

kerzo · 2006. Okt. 30. (H), 12.47
Én először megpróbálkoznék egy ciklussal, ami négyszer hajtja végre a véletlenszám generálást és kiíratást. pl.:
for ( $i=1; $i<=4; $i++) {
    $random = rand(0, $sizeof - 1);
    print("$tomb[$random]");
}

Aztán ha ez megy, akkor érdemes azon elgondolkodni, hogy vajon mekkora az esélye annak, hogy egy cikluson belül kétszer ugyan azt a számot adja ki. Ebben az esetben érdemes még egy feltételt beletenni, ahol in_array() függvénnyel megnézed, hogy a szám szerepel-e a tömbben.
4

RTFM

amonrpg · 2006. Okt. 30. (H), 14.27
erre találták ki az array_rand függvényt...
http://hu.php.net/manual/en/function.array-rand.php
5

juhujjj

Km4t3 · 2006. Okt. 30. (H), 14.49
jujj oopsssz :D
ezt nemtudtam :)
köszönöm !!

többieknek is köszönöm a segítséget!