23. september 2007 - 10:34
Der er
17 kommentarer og 1 løsning
Multidimensionelt array udskrives
Nogen der kan assistere med den her? Jeg ønsker at oprette et array opdelt og med følgende data: Skandinavien - Danmark - Sverige - Norge Syden - Italien - Frankrig - Grækenland Når dette/disse array(s) er oprettet, skal indholdet af begge arrays udskrives så det viser følgende: Lande i Skandinavien: Danmark Sverige Norge Lande i syden: Italien Frankrig Grækenland Hvordan opretter jeg arrayet og hvordan udskriver jeg det bagefter?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
23. september 2007 - 11:05
#1
$a = array( 'Skandinavien' => array('Danmark', 'Sverige', 'Norge'), 'Syden' => array('Italien', 'Frankrig', 'Grækenland') );
23. september 2007 - 11:07
#2
Udskriv (utestet): foreach($a as $region) { print "Lande i " . $region . ":\n"; foreach($a[$region] as $land) { print $land . "\n"; } print "\n"; }
23. september 2007 - 11:38
#3
eller foreach($a as $key => $value) { echo"<p>\r\nLande i ". $key .":<br />\r\n"; echo implode("<br />\r\n", $value); echo"</p>\r\n"; }
23. september 2007 - 11:48
#4
Ja, det er nok lidt pænere :) Hvis der senere skal wrappes i links etc. er det dog næppe helt så anvendeligt. Noget andet: Måske $a ikke er det bedste navn.
23. september 2007 - 13:35
#5
Tak for respons. Det virker lige ud af landevejen. Men kan i fortælle mig, hvad \n og \r gør? Og har jeg forstået det rigtigt, at implode fortæller hvor der skal placeres linieskift (efter hver \r\n)?
23. september 2007 - 13:45
#6
implode betyder, at elementerne i hvert array skal "klistres" sammen med strengen "<br />\r\n". \n betyder newline, mens \r betyder carriage return. På Windows er et linieskift \r\n, mens *NIX bruger \n. For at gøre det hele mere forvirrende bruger Mac \r. Derfor går man ofte med livrem og seler - i.e. \r\n
23. september 2007 - 13:47
#7
e.g.: $a = array('a', 'b'); $str = implode('|', $a); print $str; --> Output: "a|b"
23. september 2007 - 13:54
#8
Super god forklaring, tak. Ka du så også fortælle mig, hvordan jeg formaterer teksten "Lande i" med en CSS class og output fra $value med en anden?
23. september 2007 - 13:56
#9
Lande i skal formateres med <p class="normal"> Output fra $value skal formateres med <p class="script">
23. september 2007 - 14:02
#10
Så ville jeg foreach($a as $region => $value) { print "<p class="normal">Lande i " . $region . ":</p>\n<p class="script">"; implode("<br />\n", $value); print "</p>\n"; }
23. september 2007 - 14:02
#11
ups foreach($a as $region => $value) { print "<p class="normal">Lande i " . $region . ":</p>\n<p class="script">"; print implode("<br />\n", $value); print "</p>\n"; }
23. september 2007 - 14:12
#12
Prøv engang at se resultatet her:
http://ciffor.dk/phparrays.php Første linie bliver rykket ind, som tiltænkt, men de efterfølgende linier skulle også meget gerne rykkes med ind.
23. september 2007 - 14:24
#13
Ja, for text-indent omfatter kun første linie. Hvis du vil indrykke hele <p>'en, så hedder det padding-left. ... og strengt taget har det vist ikke ret meget med PHP og arrays at gøre :)
23. september 2007 - 14:29
#14
Nej, det kan jeg se nu, du henviser til min CSS. Sorry :-) - tænkte det havde noget at gøre med placeringen af class i php statementet. Men tak for hjælpen. Nu har jeg fået det resultat jeg ønskede på php siden. Husk at smude et svar.
23. september 2007 - 14:33
#15
Så lidt.
23. september 2007 - 14:38
#16
showsource: Tak for hjælpen. Smider du også et svar.
23. september 2007 - 15:24
#17
ingen point til mig, ellers tak
23. september 2007 - 19:11
#18
Ok.
Vi tilbyder markedets bedste kurser inden for webudvikling