26. september 2008 - 23:48
Der er
31 kommentarer og 1 løsning
Tilføj noget til array i foreach
Hej derude... har en forech der kører et array igennem... og der vil jeg gerne opbygge et nyt array... $ar = array ( "$p->name" => array("Start" => $start, "End" => $end, "Total" => $total) ); men hvorden for jeg den til at adde til arrayet? har prøvet at sætte $ar ind som; $ar = array ( "$p->name" => array("Start" => $start, "End" => $end, "Total" => $total), $ar ); men så efter 40 gange i en foreach så bliver dataen skubbet helt ud... så hvad forslår i?
Annonceindlæg fra Hitachi
”Forskellighed gør os stærkere!”
Diversitet er ikke kun buzzwords og politisk korrekthed, men et spørgsmål om at alle føler sig godt tilpas og kan yde deres bedste.
31. januar 2025
27. september 2008 - 00:23
#1
$ar["$p->name"] = array("Start" => $start, "End" => $end, "Total" => $total); ?
27. september 2008 - 00:24
#2
<?php $a = array(); for($i=0; $i<100; $i++) { $a[$i] = $i; } print_r($a); ?> Forstår ikke helt hvad du skriver, men jeg er også php noob, men det kan løses sådan her.
27. september 2008 - 00:24
#3
I øvrigt er linie 3 ligegyldig
27. september 2008 - 00:33
#4
$a = array(); <- Den? Den er ikke ligegyldig. Prøv at køre med error_reporting( E_ALL )
27. september 2008 - 11:18
#5
Hm ja den er der næsten... men den driller lidt... sætter arrayet som du sagde og de ser ud til at fungere... foreach ($players->player as $p) { foreach ($p->attendance->event as $a) { $end = $a->end; } $start = $parser->players->player->attendance->event->start; $diff = strtotime($end) - strtotime($start); $timer = floor($diff/3600) % 60; $min = floor($diff/60) % 60; $total = "Total play time: ".$timer." hours & ".$min." minutes"; $ar["$p->name"] = array("Start" => $start, "End" => $end, "Total" => $total); } for Array ( [Aenerion] => Array ( [Start] => SimpleXMLElement Object ( [0] => 2008-09-07T18:53:18Z ) [End] => SimpleXMLElement Object ( [0] => 2008-09-07T23:07:47Z ) [Total] => Total play time: 4 hours & 14 minutes ) [Branwhen] => Array ( [Start] => SimpleXMLElement Object ( [0] => 2008-09-07T18:53:18Z ) [End] => SimpleXMLElement Object ( [0] => 2008-09-07T21:27:02Z ) [Total] => Total play time: 2 hours & 33 minutes ) osv... men kan ikke rigtigt outputte det fornuftigt... prøvede med følgende kode men den giver mig bare de samme data på nær navnene; foreach ( $ar as $key => $value) { print 'Name: ' . $key . ' Start: ' . $start[0] . ' End: ' . $end[0] . ' Total: ' . $total[0] . '<br>'; }
27. september 2008 - 14:41
#6
Prøv: foreach ( $ar as $playername => $values ) { echo "$playername "; foreach ( $values as $key => $val ) { print 'Start: ' . $start[0] . ' End: ' . $end[0] . ' Total: ' . $total[0] . '<br>'; } }
27. september 2008 - 15:20
#7
Nej det fungere heller ikke hehe :) for at sammenligne.. her er et af de arrays; Array ( [Aenerion] => Array ( [Start] => SimpleXMLElement Object ( [0] => 2008-09-07T18:53:18Z ) [End] => SimpleXMLElement Object ( [0] => 2008-09-07T23:07:47Z ) [Total] => Total play time: 4 hours & 14 minutes ) } og med output bliver det til; Aenerion Start: 2008-09-07T18:53:18Z End: 2008-09-07T23:08:34Z Total: T Start: 2008-09-07T18:53:18Z End: 2008-09-07T23:08:34Z Total: T Start: 2008-09-07T18:53:18Z End: 2008-09-07T23:08:34Z Total: T
27. september 2008 - 15:43
#8
foreach ( $ar as $playername => $val ) { echo "$playername "; print 'Start: ' . $val['start'][0] . ' End: ' . $val['end'][0] . ' Total: ' . $val['total'] . '<br>'; }
27. september 2008 - 15:44
#9
foreach ( $ar as $playername => $val ) { print $playername . ' Start: ' . $val['start'][0] . ' End: ' . $val['end'][0] . ' Total: ' . $val['total'] . '<br>'; }
27. september 2008 - 16:02
#10
Hehe så for jeg; Aenerion Start: End: Total: :D
27. september 2008 - 16:07
#11
Altså plus resten af navnene i arrayet men linjer ser sådan ud
27. september 2008 - 16:17
#12
Giver ingen mening :) Prøv lige: foreach ( $ar as $playername => $val ) { echo "<pre>"; var_dump( $val ); echo "</pre>"; print $playername . ' Start: ' . $val['start'][0] . ' End: ' . $val['end'][0] . ' Total: ' . $val['total'] . '<br>'; }
27. september 2008 - 16:32
#13
array(3) { ["Start"]=> object(SimpleXMLElement)#13 (1) { [0]=> string(20) "2008-09-07T18:53:18Z" } ["End"]=> object(SimpleXMLElement)#11 (1) { [0]=> string(20) "2008-09-07T23:07:47Z" } ["Total"]=> string(37) "Total play time: 4 hours & 14 minutes" } Aenerion Start: End: Total:
27. september 2008 - 17:11
#14
Kan ikke forstå det... har det noget at gære med at det er et SimpleXMLElement?
27. september 2008 - 17:21
#15
hehehe: foreach ( $ar as $playername => $val ) { print $playername . ' Start: ' . $val['Start'][0] . ' End: ' . $val['End'][0] . ' Total: ' . $val['Total'] . '<br>'; } Hvis du kørte med error_reporting(E_ALL) ville du have fået notices om at 'start' var et "undefined index" ;)
27. september 2008 - 18:12
#16
Haha for fanden da :P Super ... smid et svar coderdk.. og TAK ;o)
27. september 2008 - 18:24
#17
:)
27. september 2008 - 18:33
#18
Nej nej nej... kan man nu ikke gemme et array i mysql? :P
27. september 2008 - 18:45
#19
<ole> $arr = array("en", "to", "tre"); $sArr = json_encode($arr); // Array'et er nu serialiseret og kan gemmes i en DB $arr = json_decode($sArr); // Strengen er nu et array igen /mvh </bole>
27. september 2008 - 18:47
#20
27. september 2008 - 21:51
#21
Hm ole... hvorfor kan jeg ikke få det til at fungere? Smider midt array som vidst tidligere i en json_encode; $sArr = json_encode($ar); og laver; $ar = json_decode($row[players]); men så for jeg denne fejl når jeg prøver at bruge den som array i den kode v lavede med coderdk tidligere; Fatal error: Cannot use object of type stdClass as array Den har gemt den fint nok i databasen; {"Aenerion":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:07:47Z"},"Total":"Total play time: 4 hours & 14 minutes"},"Branwhen":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T21:27:02Z"},"Total":"Total play time: 2 hours & 33 minutes"},"Damagedealer":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:08:46Z"},"Total":"Total play time: 4 hours & 15 minutes"},"Docmortuus":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Equiilibrium":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:07:30Z"},"Total":"Total play time: 4 hours & 14 minutes"},"Excruciate":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:03:39Z"},"Total":"Total play time: 4 hours & 10 minutes"},"Gtx":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T20:32:49Z"},"Total":"Total play time: 1 hours & 39 minutes"},"Gu00edzmo":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Helik":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Igel":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Ilmatari":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:03:28Z"},"Total":"Total play time: 4 hours & 10 minutes"},"Inimicus":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:07:40Z"},"Total":"Total play time: 4 hours & 14 minutes"},"Keiner":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Kylk":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Leilu":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:03:34Z"},"Total":"Total play time: 4 hours & 10 minutes"},"Lichess":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:08:51Z"},"Total":"Total play time: 4 hours & 15 minutes"},"Munchy":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:07:35Z"},"Total":"Total play time: 4 hours & 14 minutes"},"Necromaniac":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Oakers":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T21:04:32Z"},"Total":"Total play time: 2 hours & 11 minutes"},"Osator":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Platos":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:04:35Z"},"Total":"Total play time: 4 hours & 11 minutes"},"Ponta":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Raytu":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T21:27:07Z"},"Total":"Total play time: 2 hours & 33 minutes"},"Rugdush":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Senara":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:07:18Z"},"Total":"Total play time: 4 hours & 14 minutes"},"Shamotastisc":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:10:26Z"},"Total":"Total play time: 4 hours & 17 minutes"},"Taypeh":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:02:11Z"},"Total":"Total play time: 4 hours & 8 minutes"},"Xerses":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:08:16Z"},"Total":"Total play time: 4 hours & 14 minutes"},"Yukionna":{"Start":{"0":"2008-09-07T18:53:18Z"},"End":{"0":"2008-09-07T23:08:34Z"},"Total":"Total play time: 4 hours & 15 minutes"}}
27. september 2008 - 22:18
#22
Arrrhhh ... det er et associativt array. Sorry, det havde jeg ikke set =) JavaScript - hvis objekt notation, JSON er baseret på - findes ikke associative arrays, hvor PHP's associative arrays oversættes til objekter. Når man så oversætter tilbage, oversætter json_decode naturligvis objekterne til PHP-objekter (stdClass). Så må du bruge serialize og unserialize i stedet =)
27. september 2008 - 22:19
#23
- sikke noget vrøvl :D "I JavaScript - hvis objekt notation, JSON er baseret på - findes ikke associative arrays, hvorfor PHP's associative arrays oversættes til objekter"
27. september 2008 - 22:31
#24
Warning: unserialize() [function.unserialize]: Node no longer exists [Aenerion] => Array ( [Start] => SimpleXMLElement Object Warning: print_r() [function.print-r]: Node no longer exists in C:\wamp\www\wow\raid.php on line 92 ( ) [End] => SimpleXMLElement Object Warning: print_r() [function.print-r]: Node no longer exists in C:\wamp\www\wow\raid.php on line 92 ( ) [Total] => Total play time: 4 hours & 14 minutes )
27. september 2008 - 22:32
#25
Går ud fra mit array skal sættes på en anden måde så? $ar["$name"] = array("Start" => $start, "End" => $end, "Total" => $total);
27. september 2008 - 22:34
#26
Du kan kun bruge unserialize på en streng, der er serialiseret med serialize. Du kan ikke bruge unserialize på den JSON-streng, du viser i (27/09-2008 21:51:07)
27. september 2008 - 22:41
#27
Lav din $ar["$p->name"] = array("Start" => $start, "End" => $end, "Total" => $total); om til $ar["$p->name"] = array("Start" => $start[0], "End" => $end[0], "Total" => $total); og lav print $playername . ' Start: ' . $val['Start'][0] . ' End: ' . $val['End'][0] . ' Total: ' . $val['Total'] . '<br>'; om til print $playername . ' Start: ' . $val['Start'] . ' End: ' . $val['End'] . ' Total: ' . $val['Total'] . '<br>'; Giver den dig mere bøvl, så lav $ar["$p->name"] = array("Start" => $start[0], "End" => $end[0], "Total" => $total); om til $ar["$p->name"] = array("Start" => (string)$start[0], "End" => (string)$end[0], "Total" => $total); :)
28. september 2008 - 19:53
#28
$ar["$p->name"] = array("Start" => (string)$start[0], "End" => (string)$end[0], "Total" => $total); med print $playername . ' Start: ' . $val['Start'] . ' End: ' . $val['End'] . ' Total: ' . $val['Total'] . '<br>'; = Yay :o) Hehe takker begge 2 for jeres super stædighed! :o) det fungere bare perfekt nu! Smid et svar begge 2.. og endnu engang TAK! :)
28. september 2008 - 19:54
#29
Hov åndsvagt så har jeg lukket kan jeg se... ønsker i nogen point olebole/coderdk? Så opretter jeg gerne et nyt spørgsmål..
28. september 2008 - 20:04
#30
Nej, ellers tak. Bare du får løst problemet - jeg har længe vidst, tråden var lukket. Men det er udtryk for god E-stil, du tænker på det ;o)
28. september 2008 - 20:07
#31
- og så var det jo forøvrigt også 'coder-dyret', der endte med at redde orgiet ;D
28. september 2008 - 20:11
#32
hehe og jeg har faktisk fået point :)
Vi tilbyder markedets bedste kurser inden for webudvikling