Avatar billede kviller Novice
18. december 2003 - 21:02 Der er 10 kommentarer og
1 løsning

for løkke med variabler $a1 $a2 $a3 osv.

Jeg skal bruge nogen variabler der hedder $a1 og op efter, jeg bliver nødt til at have dem i en løkke da jeg ikke altid er klar over hvor mange det skal være, det er som hvis jeg kunne skrive a$i, men ikke lige klar over hvordan man kan gøre dette?
Avatar billede erikjacobsen Ekspert
18. december 2003 - 21:07 #1
$a1="tænk";
$a2="på";
$a3="at";
$a4="bruge";
$a5="array";

for ($i=1;$i<=5;$i++) {
  print ${"a$i"}." ";
}
Avatar billede phliplip Nybegynder
18. december 2003 - 21:15 #2
He he - Den var sq meget go ;D
Avatar billede Slettet bruger
18. december 2003 - 21:21 #3
Måske nærmere:

$a1="Det";
$a2="er";
$a3="lettere";
$a4="med";
$a5="et";
$a5="array";

$i=1;

while (isset(${"a$i"})){
print ${"a$i"}." ";
$i++;
}
Avatar billede kviller Novice
19. december 2003 - 01:30 #4
Tak for dit svar erikjacobsen og sandbox. Det var lige det med ${"a$i"}; jeg ikke var klar ovar at man kunne, jeg er nybegynder i php. Kan du ikke lige skrive en svar thread så jeg kan give dig points?
Avatar billede Slettet bruger
19. december 2003 - 01:32 #5
Jeg vil ikke lægge et svar, medmindre du fortæller, hvorfor du ikke bare bruger et array i stedet.
Avatar billede kviller Novice
19. december 2003 - 02:06 #6
Fordi jeg er total nybegynder og har ikke helt styr på det der med arrays endnu, så det er egentlig grunden :)
Avatar billede Slettet bruger
19. december 2003 - 02:25 #7
Det er jo en god grund, men det kan vi jo lave om på.

Når man skal bruge et element i et array, skriver man bare dets nummer i firkantede klammer. Hvis man lader være med at skrive et nummer, når man giver den en værdi, får den bare det næste nummer.

$a[1]="Det";
$a[2]="er";
$a[3]="lettere";
$a[4]="med";
$a[5]="et";
$a[6]="array";

// Skriver alle elementer i listen
foreach ($a as $i){
  print $i." ";
}

// Denne løkke gør det samme som den ovenstående
// men den er følsom overfor "huller" i listen
for ($i=1;$i<=count($a);$i++) {
  print $a[$i]." ";
}

$antal=count($a);
echo "Der er $antal elementer i mit array.\n";

$a[]="Her er et element mere, som automatisk bliver nummer 7";
Avatar billede Slettet bruger
19. december 2003 - 02:38 #8
Og for at gøre det endnu smartere kan arrays også bruges med tekst som indeks i stedet for tal. For eksempel:

$bruger['id']='1';
$bruger['navn']='kviller';
$bruger['email']='adresse';

Det er meget godt at kunne forstå brugen af arrays, for ellers kan du ikke lære at bruge formularer på en sikker måde, og du kan ikke lære at bruge databaser på en effektiv måde.

Når indholdet af en formular bliver sendt til et PHP-script ankommer det som et array, der hedder $_POST, så hvis du har en formular med dette felt <input type='text' name='brugernavn'> vil du kunne se brugerens data i PHP med $_POST['brugernavn']
Avatar billede Slettet bruger
22. december 2003 - 05:59 #9
Nå, det er vist tid til et svar, så der kan lukkes her.
Avatar billede kviller Novice
05. januar 2004 - 15:03 #10
Tak for svaret
Avatar billede Slettet bruger
05. januar 2004 - 16:09 #11
Fik du lært lidt om arrays?

Her er et ekstra tip: Hvis du i en formular har tre elementer som her:

<input type='text' name='varenr[]'>
<input type='text' name='varenr[]'>
<input type='text' name='varenr[]'>

Vil det phpscript, der skal behandle det få et array med op til 3 elementer, som kan bruges således:

foreach ($_POST['varenr'] as $varenr){
  print $varenr." ";
}

Det smarte her er, at der vil ikke være huller i listen, og formularen sender kun de felter, der faktisk blev udfyldt.
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

IT-JOB