The Red Devil Skrevet 6. desember 2003 Del Skrevet 6. desember 2003 (endret) [EDIT] Hehe, beklager, merket først etter at eg hadde skrevet posten at den var på engelsk... Forhåpentleg klarer dere å lese den uansett.[/EDIT] I got this code which goes over and over again in the script. The script itself is made to delete a folder and all sub folders/files, so its a few while tags that "deside" if there is more files/folders it need to delete. I have managed to get the script itself to work as it should, but Im trying to optimalize the code now. And Im not sure how to "optimalize" this part. $sql = mysql_query("SELECT fileid,filename FROM $filedatabase WHERE fileowner='$mainusernr' && dirthreadnr ='$dirnr5[$nr9]' ORDER BY fileid"); $nr7 = 1; $nr8 = 1; $fileid = array(); $filename = array(); while ($result = mysql_fetch_array($sql)) { $fileid[$nr7] = $result["fileid"]; $filename[$nr7] = $result["filename"]; $nr7++; $nr8++; } Is there anyway to return more than one value from a function ? And if there is please tell me how, or where I can read about it. Thanks Endret 6. desember 2003 av The Red Devil Lenke til kommentar
hajejan Skrevet 6. desember 2003 Del Skrevet 6. desember 2003 les php.net/functions og php.net/return Det er mulig å definere en variabel som global: global $streng; .. Som da blir tilgjengelig utenfor funksjonen. Lenke til kommentar
hajejan Skrevet 6. desember 2003 Del Skrevet 6. desember 2003 Dette er også kjekke greier: http://uk.php.net/manual/en/functions.returning-values.php Lenke til kommentar
sven-o Skrevet 6. desember 2003 Del Skrevet 6. desember 2003 (endret) Dersom du ikke ønsker å gjøre variablene globale(jeg liker iallefall ikke å gjøre det), kan du gjøre slik: function getPerson(){ $n = "Apelars"; $a = "24"; return array($n,$a); } list($navn,$alder) = getPerson(); $navn og alder vil nå inneholde de respektive verdiene inne i funksjonen. [edit] Dette er også kjekke greier: http://uk.php.net/manual/en/functions.returning-values.php Ach! Linken kom meg i forkjøpet. [/edit] Endret 6. desember 2003 av sven-o Lenke til kommentar
The Red Devil Skrevet 7. desember 2003 Forfatter Del Skrevet 7. desember 2003 Takker for svare Problemet er at for kvar plass koden blir brukt så er det forskjellige verdier. Så vist eg lager den global så vil den jo gjør alle "sjekkene" gyldige vist ein av folderene inneheld filer. Det der med list, såg ut til å kunne virke. Men er det ein måte å bruke denne funksjonen når du ikkje veit kor mange verdier "fuksjonen" vil finne ? For vist det er 100 filer vil den jo levere 100stk $fileid[] (+ dei andre og). Eller er det ein vei å returnere heile arrayen som "ein" med alle verdiene inni ? (Då vil det jo bli bare 3 verdier som trenges å sendes tilbake, begge arrayene og kor mange av dei det er) Lenke til kommentar
sven-o Skrevet 7. desember 2003 Del Skrevet 7. desember 2003 Du trenger ikke å lagre antallet elementer i arrayene. Kan hentes ut ved å bruke count($array);. For å returnere de to arrayene dine kan du gjøre slik: function getFiles(){ //Masse kode for å fylle $fileid og $filename return array($fileid, $filename); //2-dim array } list($fileidFromFunc, $filenameFromFunc) = getFiles(); Lenke til kommentar
The Red Devil Skrevet 7. desember 2003 Forfatter Del Skrevet 7. desember 2003 ah, så vist eg då bruker: $number = count(list($fileid, $ filename); og deretter ein while do { list($fileid[$nr], $filename[$nr]); $nr++; } while ($nr <= $number); for å hente ut array informasjonen om kvar fil ? Eller vil ikkje dette fungere ? Lenke til kommentar
sven-o Skrevet 7. desember 2003 Del Skrevet 7. desember 2003 (endret) Dersom du ønsker å hente ut alle verdiene i et array, gjør slik: foreach($dittarray as $dinverdi){ echo $dinverdi; } Men dersom du ønsker å manipulere verdiene i arrayet: for($i=0;$i<count($dittarray);$i++){ $dittarray[$i] = $dittarray[$i]."<br>"; } //Eventuelt bruke array_walk(), men det kan du lese mer om selv. [edit] $number = count(list($fileid, $ filename)) blir feil. Du trenger bare å telle elementene i et av arrayene: $number = count($fileid); [/edit] Endret 7. desember 2003 av sven-o Lenke til kommentar
The Red Devil Skrevet 7. desember 2003 Forfatter Del Skrevet 7. desember 2003 ok, nå er eg heilt på viddene igjen, det du har forklart er greit men, det eg ikkje forstår er korleis eg får dei to arrayene ut fra funksjonen. Eller blir dei rett og slett bare slengt ut some array "$fileid" og "$filename" uten at eg trenger gjør noko meir med dei ? Lenke til kommentar
sven-o Skrevet 7. desember 2003 Del Skrevet 7. desember 2003 For å returnere arrayene: return array($fileid, $filename); For å hente fra funksjonen: list($fi, $fn) = funksjonendin(); $fileid, $filename, $fi og $fn er alle arrays. Lenke til kommentar
The Red Devil Skrevet 7. desember 2003 Forfatter Del Skrevet 7. desember 2003 ah Takker så mye for hjelpen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå