Avatar billede uniquedk Nybegynder
23. september 2007 - 02:42 Der er 6 kommentarer og
1 løsning

Hvilken funktion til at reducere et array

Heysa der....

Hvilken funktion bruger man typisk til ar reducere et array til en variabel...

Jeg tænker hvis jeg har array(1,2,3,4,5)
hvordan får jeg det til at blive $var = 12345
Mit imiddelbare gæt er array_reduce, men ser ud til at man skal lave en callback funktion så det bliver en del kode... er der ikke en funtion der bare er noget lig $var = lav_array_til_var
Avatar billede olebole Juniormester
23. september 2007 - 02:53 #1
<ole>

$arr = array(1,2,3,4,5);
$var = implode("", $arr);
print $var;

/mvh
</bole>
Avatar billede olebole Juniormester
23. september 2007 - 02:54 #2
Strengen i det første argument bliver sat ind mellem elementerne ... prøv f.eks:

$arr = array(1,2,3,4,5);
$var = implode("XXX", $arr);
print $var;
Avatar billede uniquedk Nybegynder
23. september 2007 - 03:01 #3
Okay... er ikke kommet så langt til at kigge de implode og div. ting endnu..
men fand lige en anden måde i manualen..

har den her nu

$reminder = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s',
    't','u','v','x','y','z','1','2','3','4','5','6','7','8','9','0');
   
    for ($i = 0; $i < 8; $i++) {
            $random = array_rand($reminder);
            $newpass .= $reminder[$random];
            }
    echo $newpass;

troede . (dot) var en fejl, men kan se det er den der sørger for at flytte pointeren så min nye var blir 8 tegn...
Men giver dig point, er sikker på dit også virker... du får også lige en gang karma for at være så nice med at svare :-))
Og fordi jeg elsker dine tags ;-)

by the way som du kan se er det for at genere et nyt kodeord til en kodeords reset'er
Avatar billede olebole Juniormester
23. september 2007 - 15:48 #4
Det er altid vigtig at fortælle, hvad det skal bruges til - og så havde du jo fået en helt anden løsning  ;o)

Denne her:

function getUniq($len=8) {
    $c = "23456789abcdefghijkmnopqrstuvwxyz23456789ABCDEFGHIJKLMNPQRSTUVWXYZ23456789";
    $s = "";
    while (strlen($s)<$len) $s .= $c[ floor(mt_rand(0, strlen($c))) ];
    return $s;
}

- returnerer en tilfældig streng med en længde på $len og med både store og små tegn:
    print getUniq(12); // resulterer i f.eks: 'i9r3LmHu7oYT'

Da det er til kodeord, som skal anvendes af mennesker (og ikke internt i et program) er der dog bogstaver, der er lette at forveksle, hvorfor jeg har udeladt tallene 0 og 1, samt bogstaverne O og l  ;o)
Avatar billede olebole Juniormester
23. september 2007 - 15:50 #5
PS: Undlader du at medsende et tegnantal, vil funktionen altid returnere et kodeord på 8 tegn:
    print getUniq(); // returnerer f.eks: 'J7Dnc8Ep'
Avatar billede uniquedk Nybegynder
23. september 2007 - 15:58 #6
Damn.... du kommer sgu med alt for mange nye kommandoer jeg skal læse op på LOL
men det ser smart ud... floor og mt_rand kender jeg ikke, men jeg er også igang med en lære proces, vil læse op på dem, men beholder lige pt det jeg har... har lavet det helt færdigt med kryptering og mail sender, change pass og alt hvad der nu hører til.... men egentlig rigtig godt tænk med de tegn der kan forveksles
Men damn hvor er der sgu mange kommadoer og funktioner at læse op på.... er også igang med at læse "Core web applications with php and mysql" og har også Core php programming 3.ed" at skal igennem.... men jeg ender sgu altid med bare at programmere istedet for at læse *GGG*, men det lærer man jo også af..
Avatar billede olebole Juniormester
23. september 2007 - 16:38 #7
Hehe ... undskyld, jeg spammer med forvirrende, nye funktioner - men du lærer af det i sidste ende  ;o)

Her er PHP-referencen på de to funktioner:
    http://dk.php.net/manual/en/function.mt-rand.php
    http://dk.php.net/manual/en/function.floor.php
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester