Gå til innhold

Is it possible to get more than one


Anbefalte innlegg

[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 av The Red Devil
Lenke til kommentar
Videoannonse
Annonse

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]

 

Ach! Linken kom meg i forkjøpet. :xmas:

[/edit]

Endret av sven-o
Lenke til kommentar

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

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

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 av sven-o
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...