random en unieke combinaties

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maks

maks

04/07/2007 15:15:00
Quote Anchor link
met onderstaand script genereer ik een letter- en cijfercombinatie van 3 karakters. Nu zoek ik een methode om ervoor te zorgen dat elke combinatie maar 1 keer voorkomt en als alle combinaties geweest zijn er een melding verschijnt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
    function gen($lengte, $cijfers = true, $hoofletters = true){
        $karakters = ($hoofletters == true) ? array_merge(range('A','Z'), range('a', 'z')) : array_merge(range('a', 'z'));    
        $karakters = ($cijfers == true) ? array_merge($karakters, range(0, 9), range(0,9)) : $karakters;
        shuffle($karakters);
        $pass = NULL;
        for($i = 0; $i < $lengte; $i++)
        {

            $pass.= $karakters[$i];
        }

        return $pass;
    }



echo gen(3, true, false);
?>
 
PHP hulp

PHP hulp

26/12/2024 11:07:57
 
Jurgen assaasas

Jurgen assaasas

04/07/2007 15:17:00
Quote Anchor link
stop ze in een array en vergelijk ze elke keer dmv in_array().
 
Maks

maks

04/07/2007 15:21:00
Quote Anchor link
allemaal in een array steken? met 3 karakters (10 cijfers en 26 letters) kan je duizende mogelijkheden vormen... toch ni haalbaar in een array?!
 
Maks

maks

04/07/2007 19:58:00
Quote Anchor link
iemand die me op weg kan zetten?
 
Nicoow Unknown

Nicoow Unknown

04/07/2007 20:13:00
Quote Anchor link
hij bedoelt denk ik van:
-maak random.
-zet random in een array.
-check of random in de array staat.
-zo niet: opnieuw.
 
Manaus

Manaus

04/07/2007 21:24:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$array
= array();
do{
    $code = gen(3, true, false);
}
while(in_array($code, $array);
$array[] = $code;
?>
Gewijzigd op 01/01/1970 01:00:00 door Manaus
 
Sab Kriksdeegir

Sab Kriksdeegir

04/07/2007 21:35:00
Quote Anchor link
Quote:
Re: random en unieke combina.. op 04.07.2007 15:21 quote bericht
allemaal in een array steken? met 3 karakters (10 cijfers en 26 letters) kan je duizende mogelijkheden vormen... toch ni haalbaar in een array?!


36 * 36 *36 mogelijkheden = 46656 om precisies te zijn :)
zuigt dat geen geheugen als array ?
 
GaMer B

GaMer B

04/07/2007 21:47:00
Quote Anchor link
Eerste zoekresultaat van Mr. G. Oogle:
Link
Made by: tr4nc3
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php

# Multiple Unique Random Numbers
#
# array mrand ( int min, int max, int count [, int strlen ] )


function mrand($l,$h,$t,$len=false){
if($l>$h){$a=$l;$b=$h;$h=$a;$l=$b;}
if( (($h-$l)+1)<$t || $t<=0 )return false;

$n = array();

if($len>0){

if(strlen($h)<$len && strlen($l)<$len)return false;
if(strlen($h-1)<$len && strlen($l-1)<$len && $t>1)return false;

do{

$x = rand($l,$h);

if(!in_array($x,$n) && strlen($x) == $len)$n[] = $x;

}
while(count($n)<$t);

}
else{

do{

$x = rand($l,$h);

if(!in_array($x,$n))$n[] = $x;

}
while(count($n)<$t);

}


return $n;
}



## Samples ##

if(!$numbers = mrand(1000,9999,10,4))die("error");

// 20 random, all 7 chars in length
# $numbers = mrand(0,9999999,20,7);

// 20 random, length doesn't matter
# $numbers = mrand(0,9999999,20);

# $numbers = mrand(8000,10000,1,5) // ok
# $numbers = mrand(8000,10000,2,5) // error

# $numbers = mrand(120,100,20); // ok
# $numbers = mrand(100,120,21); // ok
# $numbers = mrand(120,100,21); // ok
# $numbers = mrand(120,100,22); // error
# $numbers = mrand(100,120,22); // error
# $numbers = mrand(120,120,1); // ok
# $numbers = mrand(120,120,2); // error
# $numbers = mrand(120,120,0); // error

# $numbers = mrand(1000000,9999999,3000);

// Sort the array
# sort($numbers);

// Display the array

echo '<pre>';
print_r($number);
echo '</pre>';

?>
 
Maks

maks

04/07/2007 23:27:00
Quote Anchor link
eum ja.. voor zover ik aan het script een beetje aanuit kan is het enkle voor getallen en niet voor de combinatie met letters...
 
Maks

maks

04/07/2007 23:31:00
Quote Anchor link
als ik dat script even test krijg ik trouwens ook geen waarde te zien.
 
Manaus

Manaus

05/07/2007 07:01:00
Quote Anchor link
Gebruik Edit Knop aub
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.