Forum Indeks
Forum for E-skakklubben
 
 FAQFAQ   SøgSøg   Tilmeldte brugereTilmeldte brugere   GrupperGrupper   TilmeldTilmeld 
 ProfilProfil   Login for at vise private beskederLogin for at vise private beskeder   LoginLogin 

ARRAY i PHP

 
Skriv nyt emne   Besvar indlægget     Forum Indeks -> Programmeringsmæssigt
Vis foregående emne :: Vis næste emne  
Forfatter Besked
Brian Lundgaard
Site Admin


Indmeldt: 01. nov 2004
Indlæg: 869

IndlægSkrevet: Tors nov 03, 2005 20:30    Emne: ARRAY i PHP Besvar, med citat

Hvad er der galt med følgende:

++$modstander[$black_id];
$modstander[$black_id][1]=$black_id;
if ($white_res==1) $modstander[$black_id][2] = $modstander[$black_id][2]+1;
if ($white_res==½) $modstander[$black_id][3] = $modstander[$black_id][3]+1;
if ($white_res==0) $modstander[$black_id][4] = $modstander[$black_id][4]+1;

Optællingen (første linje) fungerer, men der kommer ingen værdier i de andre variabler (fx $modstander[22][1] )

Jeg har stirret mig blind på det nu. Er der nogen, som kan hjælpe?
Tilbage til toppen
Vis brugerens profil Send privat besked Send email Besøg brugerens webside
Hans Nissen



Indmeldt: 03. jan 2005
Indlæg: 1633

IndlægSkrevet: Fre nov 04, 2005 10:52    Emne: Besvar, med citat

Kan desværre ikke PHP Sad

Men prøv at stille spørgsmålet i ->

http://netcoders.dk/forum.asp?tech_id=2&mode=list_forum
_________________
" You are not thinking. You are merely being logical."
Tilbage til toppen
Vis brugerens profil Send privat besked
Claudius



Indmeldt: 18. aug 2005
Indlæg: 2

IndlægSkrevet: Fre nov 04, 2005 14:10    Emne: Besvar, med citat

Hej Brian,

Et stykke tid siden jeg arbejdede med php men her er et forslag:


Jeg kan ikke se om du tidligere har defineret $modstander, men det kunne se ud som om problemet er at du først definere $modstander som endimensions array i sætningen:
Kode:
++$modstander[$black_id];


Herefter betragter php $modstander som endimensionsarray, og fx.
$modstander[$black_id][n] vil derfor være udefineret (da $modstander[$black_id er et tal, havde $modstander[$black_id] derimod været en string ville $modstander[$black_id][n] returnere n'te position af stringen.)

Du bør istedet i første linie sige fx.
Kode:
++$modstander[$black_id][0];


Håber det løser problemet.

P.s. syntes foresten at det ser suspekt ud at benytte tegnet ½ i koden, ved ikke om det giver fejl...
Tilbage til toppen
Vis brugerens profil Send privat besked
bk



Indmeldt: 03. nov 2004
Indlæg: 290

IndlægSkrevet: Fre nov 04, 2005 14:27    Emne: Re: ARRAY i PHP Besvar, med citat

Hej Brian! Har ikke været i forum længe, så derfor er det først nu jeg ser dit spørgsmål.

Brian Lundgaard skrev:
++$modstander[$black_id];
$modstander[$black_id][1]=$black_id;


I første linje siger du, at du vil have et tal i array-elementet $modstander[$black_id]. Men i næste linje forudsætter du, at det indeholder et array. Jeg programmerer jo ikke i PHP til daglig, men jeg kan forestille mig, at PHP stejler over det.

Jeg ved jo ikke, hvad sammenhængen er, men måske mente du:

$modstander[$black_id] = array();
$modstander[$black_id][1] = $black_id;

(Forresten, hvorfor ikke bruge navne i stedet for numeriske indekser:

$modstander[$black_id]["ID"] = $black_id;

I mange sammenhænge ville det være klarere, når du kigger på den samme kode nogle dage eller uger senere.)

Brian Lundgaard skrev:

if ($white_res==½) $modstander[$black_id][3] = $modstander[$black_id][3]+1;


Dette virker også suspekt på mig. ½ er jo ikke et tal. Hvis $white_res indeholder en streng (snarere end tallet 0,5) så er du nødt til at sige $white_res=="½" (med citationstegn).

Edit: Hovsa, jeg er åbenbart enig med Claudius. Havde ikke set hans indlæg, da jeg begyndte at svare...
_________________
- Baldur
Tilbage til toppen
Vis brugerens profil Send privat besked
Brian Lundgaard
Site Admin


Indmeldt: 01. nov 2004
Indlæg: 869

IndlægSkrevet: Fre nov 04, 2005 21:14    Emne: Besvar, med citat

Svarene er korrekte! Dette fungerer:
Kode:
++$modstander[$black_id][0];
$modstander[$black_id][1]=$black_id;
if ($white_res==1) $modstander[$black_id][2] = $modstander[$black_id][2]+1;
if ($white_res=="½") $modstander[$black_id][3] = $modstander[$black_id][3]+1;
if ($white_res=="0") $modstander[$black_id][4] = $modstander[$black_id][4]+1;

Hvordan vi så fik det sorteret bagefter, er noget mere langhåret (jeg forstår det stadig ikke), men det virker. Se de personlige statistikker!
Tilbage til toppen
Vis brugerens profil Send privat besked Send email Besøg brugerens webside
Vis ikke emner ældre end:   
Skriv nyt emne   Besvar indlægget     Forum Indeks -> Programmeringsmæssigt Alle tidspunkter er GMT + 1 (CET/Europa)
Side 1 af 1

 
Gå til:  
Du kan ikke skrive nye indlæg i dette forum
Du kan ikke besvare indlæg i dette forum
Du kan ikke rette dine indlæg i dette forum
Du kan ikke slette dine indlæg i dette forum
Du kan ikke stemme på afstemninger i dette forum


Powered by phpBB © 2001, 2005 phpBB Group