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 fra Deloitte
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