WinFuture-Forum.de: [php] Array Im Array - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[php] Array Im Array


#1 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.570
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 16. Oktober 2007 - 08:37

Hi,

ich hab da ein kleines Problem. Ich habe mir einen kleinen XML-Parser gebaut. Das Problem ist nur, dass die XML-Datei folgendermaßen aufgebaut ist:
<book>
 <author>Bla</author>
 <title>Blubb</title>
 <publisher>Tüdelü</publisher>
</book>
<book>
 <author>Blubber</author>
 <title>Plopp</title>
 <publisher>Dingeling</publisher>
</book>
Das sorgt dafür, dass mein Parser mir das Ganze als Array im Array ausgibt. Also z.b.:
Array (
 0 -> (
  author -> Bla
  title -> Blubb
  publisher -> Tüdelü
 )
 1 -> (
  author -> Blubber
  title -> Plopp
  publisher -> Dingeling
 )
)

Nun brauch ich aber ein einzelnes array für jedes Buch. Habs schon mit $book0 = implode(",", $db[0]); ($db ist das Haupt-Array) probiert, funktioniert aber nicht. Logisch weil ich ihm ja einen Datensatz innerhalb eines Arrays angebe.
Ich habe auch schon probiert $book0 = $db[0]; und danach mit implode zu arbeiten, funktionierte aber irgendwie auch nicht.
Testweise habe ich auch $book0 = implode(",", $db); probiert. das ergab aber nur ein

Zitat

Catchable fatal error: Object of class Book could not be converted to string in C:\xampp\htdocs\practicephp\xml.php on line 112
.

Wenn das mit dem explode funktionieren würde hätte ich zwar kein Array, aber zumindest schonmal einen Kommaseparierten Datensatz, den ich dann meinetwegen auch weider in ein Array konvertieren könnte. Das klingt irgendwie ziemlich doof, erst ein Array zum String zu konvertieren um dann wieder ein Array draus zu machen. Es muss doch irgendeine Möglichkeit geben die einzelnen Arrays da direkt als Array herauszuziehen. Nur wie?

Grüße,
sкavєи
Eingefügtes Bild
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 16. Oktober 2007 - 08:48

Das ist aber keine valide XML-Datei. Eine XML-Datei hat immer einen root-knoten. Bau bei dir am besten noch <books> ein.

Ansonsten könnte dich folgender Codeausschnitt weiterbringen.
$books = getBooksFromXML(); // halt eine Methode/Funktion die das Array zurückgibt

foreach ($books as $book) {
	echo $book['author'];
	echo $book['title'];
	echo $book['publisher'];
}

0

#3 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.570
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 16. Oktober 2007 - 08:51

du meinst sowas?
<?xml version="1.0" encoding="utf8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2007-10-15T11:17:49">
[...]
</dataroot>
Ja das ist vorhanden, habe ich nur eben im Beispiel weggelassen. ;) Ich glaube aber trotzdem auch nicht, dass die Datei so valide ist, weil es ist ein MS Access-Export, das kann ja nicht richtig sein. :)

Edit: Arghs nun habe ich meinen Fehler gefunden. Das Hauptarray is ja gar kein Array, das is'n Object. :) Nur wie mache ich aus den Arrays im Object einzelne durchnummerierte Arrays?

Dieser Beitrag wurde von sкavєи bearbeitet: 16. Oktober 2007 - 09:11

Eingefügtes Bild
Eingefügtes Bild
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 16. Oktober 2007 - 09:14

Kommt drauf an von welcher Klasse das Objekt ist. Diese Klasse wird sicherlich Methoden mitbringen um durch die entsprechenden Objekte zu iterieren.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0