Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 22:52 Der er 21 kommentarer og
1 løsning

samle 2 $variabler i 1 $variabel

Jeg har 2 variabler

$bruger_id = 11;
$bruger_konto = 7;

Dem vil jeg gerne have samlet til en variabel, noget i stil med (gætter):

$bruger_auth = $bruger_id '_' $bruger_konto;

echo"Bruger Auth: $bruger_auth";

Så den vil udkrive:
Bruger Auth: 11_7
Avatar billede erikjacobsen Ekspert
29. februar 2008 - 22:57 #1
$bruger_auth = $bruger_id . '_' . $bruger_konto;
Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 23:06 #2
Det løste halvdelen af mit problem. Har en varabel der hedder $11_7, som jeg skal have skrevet ud. Er det ikke muligt at bruge $bruger_auth, noget i retning af:
echo" $'$bruger_auth' "; ?
Avatar billede erikjacobsen Ekspert
29. februar 2008 - 23:08 #3
Det lyder ikke sundt. Du skal ikke bruge almindelige variabler på den måde, men fx et array:

  $k['11_7']="noget";
Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 23:14 #4
Tror jeg har rodet mig ud i lidt af en sø forklaring her. Skulle bruge det i en helt anden sammenhæng, prøvede bare at lave et mere simpelt eksempel, men har vist bare gjort det værre. Jeg forsøger at få udskrevet en række $variabler i en løkke der hedder $dag_1 $dag_2 $dag_3 osv. Her er min kode:

KODE:
===============================0
$repeat = 0;
while ($repeat < 10) {
$repeat = $repeat+1;
$dag = dag;
$print_dag = $dag . '_' . $repeat;
echo"$print_dag <br>";
}

Mit problem er så jeg ender med 2 $variabler $dag og $repeat som jeg gerne vil have samlet.

Noget du kan se hvordan jeg kan samle det så jeg får min rigtige variabel $dag_1 $dag_2 osv... ?
Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 23:15 #5
$print_dag bliver:

dag_1
dag_2
dag_3 osv....

mangler bare at få '$' foran
Avatar billede erikjacobsen Ekspert
29. februar 2008 - 23:20 #6
Det kan der være noget om ;)

Men det er som sagt ikke sundt. Hvorfor bruger du ikke et array:  $dag[1]="noget"  ?
Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 23:26 #7
Fordi jeg ikke har brugt Array's før, så kender ikke til hvordan det fungerer. Kan tyde på det er på tide jeg får sat mig ind i det.

$dag[1]="noget"
$dag[2]="noget andet"
$dag[3]="noget andet...."

Hvordan udskrives de så?
Avatar billede erikjacobsen Ekspert
29. februar 2008 - 23:28 #8
for ($i=1;$i<=3;$i++) {
  print $dag[$i]."<br>";
}
Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 23:37 #9
Den viser ikke noget
Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 23:38 #10
Hvis jeg bare skriver echo"dag: $dag_2";
får jeg dag: Tirsdag.
Avatar billede erikjacobsen Ekspert
29. februar 2008 - 23:42 #11
Det kommer jo an på hvad du skriver.
Avatar billede Asger Carlsen Nybegynder
29. februar 2008 - 23:46 #12
okay, så er jeg med:

Hvis jeg skriver:

KODE
===========
$dag[1]="noget";
$dag[2]="noget andet";
$dag[3]="noget andet....";

for ($i=1;$i<=3;$i++) {
  print $dag[$i]."<br>";
}

Får jeg :

n
n
n
Avatar billede nielle Nybegynder
01. marts 2008 - 08:40 #13
...

$dag = array();
$dag[1]="noget";
$dag[2]="noget andet";
$dag[3]="noget andet....";

...
Avatar billede Asger Carlsen Nybegynder
01. marts 2008 - 10:48 #14
Nu har jeg fundet ud af systemet, men hvordan får jeg så informationer fra forskellige input poxe ind i de respektive $array's?

Altså jeg har en
<input name="dag_1"> som jeg gerne vil have ind i $dag[1]
<input name="dag_2"> som jeg gerne vil have ind i $dag[2]
<input name="dag_3"> som jeg gerne vil have ind i $dag[3]

osv..

Kan du hjælpe mig med at kringle den?
Avatar billede erikjacobsen Ekspert
01. marts 2008 - 10:50 #15
<input name="dag[1]">
Avatar billede erikjacobsen Ekspert
01. marts 2008 - 10:53 #16
Og så skal du hente værdierne ud af enten $_GET eller $_POST, for kun i gamle opsætninger dukker arrayet $dag selv op.
Avatar billede Asger Carlsen Nybegynder
01. marts 2008 - 10:58 #17
SMUKT!!!

Så kører det. Du har i DEN grad afhjulpet mig et STORT problem!

Du skal have mange tak. Læg et svar, så får du dine point
Avatar billede erikjacobsen Ekspert
01. marts 2008 - 11:09 #18
Jeg samler slet ikke på point, tak.
Avatar billede Asger Carlsen Nybegynder
01. marts 2008 - 11:28 #19
Så skal du i hvert fald have mange tak for hjælpen!!

- lukker
Avatar billede nicolaib Praktikant
02. marts 2008 - 04:32 #20
-> erikjacobsen
Vil du ikke lige give en forklaring på hvorfor man ikke kan/må bruge en variabel variabel.
Avatar billede erikjacobsen Ekspert
02. marts 2008 - 07:54 #21
Man må, og man kan, men man bør ikke, da det giver rodet og uoverskuelig kode - og når man nu har arrays, der kan indiceres med en streng, er der heller ingen grund til det.

Jeg kom lidt hurtigt ud af ovenstående - først til sidst kom data fra en <form>:

Med

<input name="dag_1">
<input name="dag_2">
<input name="dag_3">

aflæses værdierne fra $_POST på denne måde (som ønsket af mig i 01/03-2008 10:53:52):

for ($i=1;$i<=3;$i++) {
  print $_POST['dag_'.$i]."<br>";
}
Avatar billede nicolaib Praktikant
02. marts 2008 - 17:07 #22
Jeg er klart enig i at arrays er smartere men jeg blev lige bange for at jeg måske havde overset noget mht. brugen af variable variabler. Måske sikkerhedsproblem eller lign. Men tak for det.
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