Avatar billede mysitesolution Nybegynder
13. oktober 2004 - 22:24 Der er 11 kommentarer og
1 løsning

Modsat foreach

Hej... hvordan gør man så den tager det i den modsatte rækkefølge? normalt tager den jo fra 0 til X, men vil have den til at tage fra X til 0 :)

min ser således ud:
foreach ($myfile as $line_num => $line) {
Avatar billede erikjacobsen Ekspert
13. oktober 2004 - 22:26 #1
Du kan vel sortere din $myfile først?
Avatar billede baitianlong Nybegynder
13. oktober 2004 - 22:27 #2
skriv

array_reverse($myfile);

før din linie. Så er arrayet "vendt på hovedet" :)
Avatar billede Slettet bruger
13. oktober 2004 - 22:41 #3
Er arrayet nummereret fra 0 til X uden huller?

Så kan du bruge en almindelig for-løkke i stedet. (Den er også ca. dobbelt så hurtig som foreach.)

for($line_num=count($myfile)-1;$line_num>=0;$line_num--){
  // Her skal du bare bruge $myfile[$line_num] i stedet for $line
}
Avatar billede mysitesolution Nybegynder
13. oktober 2004 - 22:45 #4
hmm nej bliver lidt sværere... fordi nummeret må nemlig ikke ændres...

Så skal der nok sættes en key til ind?

Den læser en fil ind, så linienummerene er MEGET vigtige...
Avatar billede Slettet bruger
13. oktober 2004 - 22:51 #5
Hvis PHP-versionen er 4.03 eller nyere, kan du bruge array_reverse($myfile,true);

så bliver numrene bevaret.
Avatar billede mysitesolution Nybegynder
13. oktober 2004 - 23:03 #6
hmm tester
Avatar billede mysitesolution Nybegynder
13. oktober 2004 - 23:23 #7
hmm array_reverse virker ikke rigtig :/...

med print_R udskriver den det samme?
Avatar billede erikjacobsen Ekspert
13. oktober 2004 - 23:30 #8
Denne skulle virke:

  $a = array("a" => "aa","b" => "bb","c" => "cc");
  $a[5]="hejsa";
                                                                               
  foreach ($a as $c=>$d) {
    print "$c=>$d\n";
  }
print "-----\n";
  $b=array_reverse($a);
  foreach ($b as $c=>$d) {
    print "$c=>$d\n";
  }
Avatar billede Slettet bruger
13. oktober 2004 - 23:30 #9
Vi havde overset, at array_reverse ikke ændrer på det array, den får som parameter, men returnere et nyt array, så

$myfile_reverse=array_reverse($myfile,true);
Avatar billede mysitesolution Nybegynder
13. oktober 2004 - 23:32 #10
he he okay, så prøver jeg igen ;)
Avatar billede mysitesolution Nybegynder
13. oktober 2004 - 23:33 #11
sandbox, opret svar ;)
Avatar billede Slettet bruger
13. oktober 2004 - 23:37 #12
Javel ;-)
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