| Autor | Zpráva | ||
|---|---|---|---|
| Petr-K Profil * |
#1 · Zasláno: 19. 7. 2011, 16:12:42
Zdravím,
pořeboval bych od vas poradit. Jak z objektu, který vznikne načtením xml souboru pomocí SimpleXML, vytvořit dvourozměrné pole. Načtení souboru: $data = simplexml_load_file('gallery.xml');Struktura souboru gallery.xml: <db_gallery> <gallery> <name>AutoGP Endurance Brno</name> <folder>20110619-autoGP-endurance-brno</folder> ... </gallery> <gallery> <name>WTCC Brno 2011</name> <folder>20110619-WTCC-brno-2011</folder> ... </gallery> ... </db_gallery> Objekt pak vypadá takto: SimpleXMLElement Object ( [gallery] => Array ( [0] => SimpleXMLElement Object ( [name] => AutoGP Endurance Brno [folder] => 20110619-autoGP-endurance-brno ) [1] => SimpleXMLElement Object ( [name] => WTCC Brno 2011 [folder] => 20110619-WTCC-brno-2011 ) ) ) Potřeboval bych získat toto: Array ( [0] => Array ( [name] => AutoGP Endurance Brno [folder] => 20110619-autoGP-endurance-brno ) [1] => Array ( [name] => WTCC Brno 2011 [folder] => 20110619-WTCC-brno-2011 ) ) Dvourozměrné pole jsem se pokoušel vytvořit pomocí foreach (foreach mi zatím neříká pane :-) bohužel): foreach($data->gallery as $value){
$newGallery[] = array('name'=>$value->name, 'folder'=>$value->folder);
}Výsledek foreach je následující, proč? A jak získat požadovanou podobu? Array ( [0] => Array ( [name] => SimpleXMLElement Object ( [0] => AutoGP Endurance Brno ) [folder] => SimpleXMLElement Object ( [0] => 20110619-autoGP-endurance-brno ) ) [1] => Array ( [name] => SimpleXMLElement Object ( [0] => WTCC Brno 2011 ) [folder] => SimpleXMLElement Object ( [0] => 20110619-WTCC-brno-2011 ) ) ) Díky moc. P. |
||
| Dero Profil |
#2 · Zasláno: 19. 7. 2011, 16:19:26 · Upravil/a: Dero
Petr-K: Pokud chcete s atributem prvku zacházet jako s řetězcem, musíte použít přetypování.
foreach($data->gallery as $value){
$newGallery[] = array('name'=>(string)$value->name, 'folder'=>(string)$value->folder);
}SimpleXML ve výchozím nastavení reprezentuje atributy vždy coby objekt. |
||
| Petr-K Profil * |
#3 · Zasláno: 19. 7. 2011, 16:57:30
Dero:
Perfektní, jak jednoduché to bylo, díky moc! Kde se mohu vice dočíst o přetypování? Ještě jednou díky! |
||
| Dero Profil |
#4 · Zasláno: 19. 7. 2011, 17:14:52
Petr-K: Rádo se stalo! Pokud umíte anglicky, pak je nejlepším zdrojem informací tato stránka: http://php.net/manual/en/language.types.type-juggling.php
Spolu s tím doporučuji pročíst i základní dokumentaci k SimpleXML, která je dostupná zde: http://php.net/manual/en/simplexml.examples-basic.php, těch nepříliš intuitivních prvků totiž obsahuje povícero. |
||
| Petr-K Profil * |
#5 · Zasláno: 19. 7. 2011, 17:21:30
Díky, angličtina by neměla být problém :)
|
||
|
Časová prodleva: 14 let
|
|||
0