» »

[PHP] random iz array-a z izjemami

[PHP] random iz array-a z izjemami

Miko55 ::

Iz arraya hočem dobit vrednosti, ji pa vzame naključno. Potem to vrednost izpiše, ter je izbriše iz arraya da je ne izpiše še enkrat. Potem gre še izpisovat še druge po naključnem vrstnem redu ampak če je potem random enak enemu izmed prejšnjih se pojavi error ker tam ni več definirane vrednosti. Sem probal da bi izpisane vrednosti dodal med izjeme ampak mi nekaj ne funkcionira.

function whatever()
{
	$array = array(
            "ena","dva","tri","štiri"
        );	
        $izjeme = array_fill(0,4, "bu");
 
        $j=count($array);
        for($i=0;$i<$j;$i++)
        {
		$size=count($array);
		echo " Size:".$size;
        $rand=rand(0,$size);
        $izjeme[$i]=$rand;
        
        for($j=0;$j<4;$j++)
        {
			if($rand==$izjeme[$j])
			{
				while($rand==$izjeme[$j])
				{
					$rand=rand(0,$size);
				}
			}
		}
        	
        echo " Rand:". $rand;
        echo " Echo:".$array[$rand];
        unset($array[$rand]);
        echo "<br/>";
		}

}


Tu je pa še slika izpisa :http://prntscr.com/38j9ag

Denisj ::

Mislim, da bi tole moglo delat.

function whatever()
{
    $array = array( "ena","dva","tri","štiri" ); 

    while(count($array) != 0)
    {	
    	$size = count($array);		        
	    echo " Size: ".$size;

        $rand = array_rand($array);
		             
        echo " Rand: ". $rand;
        echo " Echo: ".$array[$rand];

        unset( $array[$rand]) ;

        echo "<br/>";
       }	 
}

Ziga Dolhar ::

Nisem čist prepričan da povsem razumem kaj bi rad dosegel, a če razumem pravilno, bi si tole lahko poenostavil s funkcijama shuffle() in array_pop(). Recimo nekaj v stilu:

$array = array('ena', 'dve', 'tri', 'štiri');
shuffle($array);
$counter = 1
while(0 < sizeof($array) {
  echo 'Rand '.$counter++.': '.array_pop($array).'<br/>';
}


(Mau na pamet spisano, brez testiranja ...)

Sicer pa - ko je array enkrat zrandomiziran, ga v bistvu ni potrebno ponovno randomizirat. Bi lahko shuffle dal kar nad while zanko.
https://dolhar.si/

Zgodovina sprememb…

Denisj ::

Poslušaj nasvet od Žige ;)

Miko55 ::

Obe rešitvi delujeta,ampak prva se mi zdi primernejša za delo naprej.

Hvala za pomoč,LP


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PL SQL problem

Oddelek: Programiranje
15920 (489) killa bee
»

[php] array

Oddelek: Izdelava spletišč
81370 (1215) sebavet
»

python-pomoč pri nalogi z nizi

Oddelek: Programiranje
181539 (1237) galu
»

[Javascript] Reindex Array

Oddelek: Programiranje
9760 (631) kogledom
»

JavaScript naloge za faks (ustni izpit)

Oddelek: Šola
182366 (1906) Lumix

Več podobnih tem