Nasumicni izbor brojeva, pomoc

Bok
imam

<?php
function generate_numbers( $min, $max, $anz )
{
    $array = range( $min, $max );
    srand( (double)microtime() * 1000000 );
    for ( $x=0; $x<$anz; $x++ ) {
        $i = rand( 1, count( $array) ) - 1;
        $erg[] = $array[$i];
        array_splice( $array, $i, 1 );
    }
    return $erg;
}
 
// 5 nasumicnih brojeva
$nasum_array = generate_numbers( 68, 80, 5 );
echo join( ',', $nasum_array );
?>

skriptu koja mi generira nasumicne brojeve iz jednog brojcanog niza.
Ono sta ne mogu nikako implemnetirati je:
Zelim da iz rezulatata eliminiram neke brojeve.
Npr. u nizu od 68 do 80 ne zelim da mi se pojavi broj 70 i 75 u rezulatatu

Hvala

Iskoristi do-while, gdje je uvjet da je rezultat element skupa koji ne želiš.

[php]$eliminate = array(75, 70);

$nasum_array_flip = array_flip($nasum_array);

foreach ($eliminate as $key)
{
if (array_key_exists($key, $nasum_array_flip))
{
unset($nasum_array_flip[$key]);
}
}
echo ‘
’;
echo implode(’,’, array_flip($nasum_array_flip));[/php]

ovako nesto?

@junior tak dobar sa php i nisam, nazalost

@jojo neznam kak da ovo implementiram?

Moj kod za sada izgleda ovako;
<?php
function generate_numbers( $min, $max, $anz )
{
$array = range( $min, $max );
srand( (double)microtime() * 1000000 );
for ( $x=0; $x<$anz; $x++ ) {
$i = rand( 1, count( $array) ) - 1;
$erg[] = $array[$i];
array_splice( $array, $i, 1 );
}
return $erg;
}

// x nasumicnih brojeva
$min = $_POST['min'];
$max = $_POST['max'];
$anz = $_POST['anz'];
$nasum_array = generate_numbers( $min, $max, $anz );
?>
<div align="center">
<?php
echo join( ',', $nasum_array );
?>
</br>
<a href="javascript:history.back()">Nazad</a>
</div>

te forma za unos:

<html>
<body>

<form name="form1" action="xyz.php" method="post">

Najmanji: <input name="min" type="text" id="min" size="10">
Najveci: <input name="max" type="text" id="max" size="10">
Ukupno: <input name="anz" type="text" id="anz" size="10">

<input type="submit" name="form1" value="Zatrazi">
</form>

</body>
</html> 

Hvala

rjesio, hvala. Ako kog interesira cijeli kod budem napisao.
Jojo rep+
Hvala

jos me jedino muci kako definirati
$eliminate = array(75, 70);
tj kako zamjeniti 75 i 70 sa varijablama. sa jednim brojem kuzim (definirao sam ga ko $broj) i onda u formi jednostavo submitam to. Alo sta staviti u array da mogu u submitu upisati vise razkicitih brojeva.
Hvala

Možeš npr. upisivati brojeve u formu tako da ih odvojiš zarezom, a s PHP-om napraviš sljedeće:
[php]$numbers = $_POST[‘numbers’];
$eliminate = explode(’,’, $numbers);

// varijabla $eliminate je sada zapravo niz tih brojeva
// p.s. pripazi da ih unosis bez razmaka, npr: “70,75,80”
[/php]

[quote=“TomislavS”]Možeš npr. upisivati brojeve u formu tako da ih odvojiš zarezom, a s PHP-om napraviš sljedeće:
[php]$numbers = $_POST[‘numbers’];
$eliminate = explode(’,’, $numbers);

// varijabla $eliminate je sada zapravo niz tih brojeva
// p.s. pripazi da ih unosis bez razmaka, npr: “70,75,80”
[/php][/quote]
Hvala imenjace, to je to rep+ i tebi

Poz

[quote=“TomislavS”]Možeš npr. upisivati brojeve u formu tako da ih odvojiš zarezom, a s PHP-om napraviš sljedeće:
[php]$numbers = $_POST[‘numbers’];
$eliminate = explode(’,’, $numbers);

// varijabla $eliminate je sada zapravo niz tih brojeva
// p.s. pripazi da ih unosis bez razmaka, npr: “70,75,80”
[/php][/quote]

==

[php]$numbers = koristi_neku_funckiju_zastite($_POST[‘numbers’]);
$eliminate = explode(’,’, str_replace(’ ', ‘’, $numbers));

// varijabla $eliminate je sada zapravo niz tih brojeva
[/php]

Sada možeš unositi i razmak :smiley:


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja