18. januar 2004 - 22:59
Der er
16 kommentarer og 2 løsninger
oprette multi-dim array
Hejsa eksperter ... er lige blevet helt blank ang. noget syntaks... Jeg har $antalRaekker, som jeg skal gemme for hver ugedag, dvs en 7 x $antalRaekker array... hvordan laves sådan en... Jeg ved godt, hvordan jeg derefter bruger det ( $minArr[ugedag][raekke] ) men hvordan får jeg oprettet den skide array...
Annonceindlæg fra Deloitte
18. januar 2004 - 23:00
#1
ok kan man gøre det sådan at alle elementer fra udgangspunkt har en bestemt værdi?
18. januar 2004 - 23:00
#2
ok => og
18. januar 2004 - 23:07
#3
fatter ikke lige problemet? Hvad er det du ikke kan lave? Er det ikk' bare noget lignende; <pre> <?php $ti = array( 1 => array('række 1', 'række 2'), 2 => array('række 1', 'række 2', 'række 3', 'række 4', 'række 5'), 3 => array('række 1', 'række 2', 'række 3', 'række 4'), 4 => array('række 1', 'række 2', 'række 3', 'række 4'), 5 => array('række 1'), 6 => array('række 1', 'række 2', 'række 3', 'række 4', 'række 5', 'række 6'), 7 => array('række 1') ); print_r($ti); ?> </pre> du mener?
18. januar 2004 - 23:09
#4
du kan også senere defiere dem.. altså noget lignende; $ti = array(); $ti[1] = array('række 1', 'række 2', 'række 3', 'række 4'); Men ved som sagt ikke om jeg er langt ude?!
18. januar 2004 - 23:11
#5
Ja, du kan gøre det på mange måder, et andet eks.: $multi = array('man',',tir','ons','tor','fre','lor','son'); $multi['man'][] = 3; $multi['man'][] = 5; $multi['man'][] = 23; // osv...
18. januar 2004 - 23:13
#6
Næ, vel nærmere sådan her: $multi['man'][] = 3; $multi['man'][] = 5; $multi['man'][] = 23; $multi['tir'][] = 17; $multi['tir'][] = 46; $multi['ons'][] = 12; // osv... print_r($multi);
18. januar 2004 - 23:17
#7
kan jeg bare sige $skema[1][1] = "værdi"? og så er $skema ligepludselig oprettet ?
18. januar 2004 - 23:20
#8
vil følgende kode virke... for($ugedag=0;$ugedag<7;++$ugedag) { for($raekke=0; $raekke<$skema_stoerrelse; ++$raekke) { $skema[$ugedag][$raekke] = "lukket"; } } og jeg så derefter har et 7 x $skema_stoerrelse array til rådighed via $skema ? ( $skema_stoerrelse er antallet af rækker for hver dag... )
18. januar 2004 - 23:21
#9
bearhugx -> Det vil jeg mene, ja.
18. januar 2004 - 23:24
#10
Eller mere præcist: for($ugedag=0;$ugedag<7;$ugedag++) { for($raekke=0; $raekke<$skema_stoerrelse;$raekke++) { $skema[$ugedag][$raekke] = "lukket"; } }
Slettet bruger
18. januar 2004 - 23:28
#11
detox: Der er da ikke noget galt med ++$ugedag - Det hedder pre-increment. Der er ingen grund til at lave det om til post-increment i dette tilfælde. Bearhuqx: Purister vil sige, at du skal lige klargøre dit array først. Dvs. med $skema=array(); før din for-blok.
18. januar 2004 - 23:31
#12
sandbox >> mente hellerikke at der skulle være noget galt i en pre-inc... Vil dog lige tage det med klargøring af arrayet til efterretning :-) jeg afprøver koden lige om lidt :-) - så håber jeg at det virker :-)
18. januar 2004 - 23:37
#13
sandbox -> Aha, det har jeg aldrig brugt ;o) bearhugx -> Du kunne osse bruge array_fill: for ($ugedag=0;$ugedag<7;$ugedag++) { $skema[$ugedag] = array_fill(0,$skema_stoerrelse,"lukket"); }
18. januar 2004 - 23:37
#14
juhuuu ... det virker.... nicklasb, detox og sandbox - vil i ikke lige alle komme med et svar... den kode som er brugt $skema = array(); for($ugedag=0;$ugedag<7;++$ugedag) { for($raekke=0; $raekke<$skema_stoerrelse; ++$raekke) { $skema[$ugedag][$raekke] = "lukket"; } }
18. januar 2004 - 23:39
#15
detox ... vil array_fill være hurtigere end den brugte for-løkke ?
Slettet bruger
18. januar 2004 - 23:41
#16
Jeg skal ikke have point i dit spørgsmål for at lære detox om preincrement. Og den $skema=array(); er ikke strengt nødvendig. Det er bare for at formilde de gamle C-programmører, der vil have, at man initierer alle variable.
18. januar 2004 - 23:44
#17
Mon ikke array_fill() er lidt hurtigere, det er hvert fald kortere kode.
19. januar 2004 - 06:56
#18
hvorfor ikke bare tage det med, nu du har en klar mulighed for det? Kan godt være det er ridser efter at have kodet c.. Men det er da klart at fortrække også for dig selv, at du kan se hvor "det sker", så du allerede DER kan tilføje en anden gang.. Du kan jo bare sætte det ind imellem dine forløkker.. Altså noget lignende; $skema = array(); for($ugedag=0;$ugedag<7;++$ugedag) { $skema[$ugedag] = array(); for($raekke=0; $raekke<$skema_stoerrelse; ++$raekke) { $skema[$ugedag][$raekke] = "lukket"; } } ?! Og om array_fill() er hurtigere end at sætte det lig, ved jeg heller ikke.. Men et oplagt emne, til mit og dea_pg's næste tidstest.. Har faktisk aldrig brugt array_fill() i praksis selv, så kan ikke umidbart uden at have læst manualen se den store gevinst i det? Men nok også noget lævn / efterligning af en c-komando (ikke utænkeligt.. :)
Vi tilbyder markedets bedste kurser inden for webudvikling