PHP Array splitten

resoucer

Gesperrt
ID: 77379
L
20 April 2006
2.846
109
Hallo,

undzwar komm ich nicht weiter. Ich habe folgenden Array

Code:
Array ( [0] => [1] => K042-74 PE Roll 20 OPP/60 PE weiss 00902188 Variantencode Lagerortcode LVS Lagerfachcode FACH Qualitätsstatus Qualitätslager 2842415 08.09.10 080910 5R34515 PE Roll 20 OPP/60 PE weiss 1 10.000 2856894 2842414 08.09.10 080910 5R35113 PE Roll 20 OPP/60 PE weiss 1 10.760 2856896 Total für Qualitätsstatus 2 20.760 Total für Lagerfachcode 2 20.760 Total für Lagerortcode 2 20.760 Total für Variantencode 2 20.760 Total für [2] => 2 20.760 )

HTML:
Jetzt brauche ich folgende Infos hieraus:
1.    K042-74 
1.1. PE Roll 20 OPP/60 PE weiss

2.    2842415
2.1  08.09.10
2.2  080910
2.3  5R34515
2.4  PE Roll 20 OPP/60 PE weiss
2.5  1
2.6  10.000
2.7  2856894
	
3.    2842414
3.1  08.09.10
3.2  080910
3.3  5R35113
3.4  PE Roll 20 OPP/60 PE weiss
3.5  1
3.6  10.760
3.7  2856896
	
4.   Total für Qualitätsstatus
4.1  2
4.2  20.760

Dabei muss gesagt werden das Punkt 2 und 3 auch nicht immer so sind. Sprich es können auch 2,3,4,5,6 mal ein Artikel davon kommen aber manchmal auch nur einer. (im Beispiel sind 2 vorhanden).

Weis einer wie ich das richtig splitten kann?

Danke schonmal
 
Weis einer wie ich das richtig splitten kann?
Wenn du mir die Regeln nennst, wie du das gemacht hast, gerne.
Für mich sieht es so aus, als ob du nur die Elemente des Arrays genommen hast und an allen Leerzeichen explode()d hast. Das scheint aber nicht 100%ig zu stimmen, da du einige Leerzeichen auch erhalten hast. Und was zu 1., was zu 2. usw. gehört, versteh ich auch ned.

Um deine Frage also zu beantworten, solltest du dir erstmal selber beantworten:
Was willst du überhaupt? :ugly:
 
Zuletzt bearbeitet:
Das ganze ist eine Lagerliste.

vorher wurden entfernt
PHP:
$text = strip_tags($text);
$text = str_replace("&nbsp","",$text);

da das Ganze am Anfang eine HTML datei ist die eingelesen und dann abgearbeitet werden muss.

PS: Der Array kommt zustande da nach jedem neuer Artikelart exploded wird:

PHP:
$text = explode("Artikelnr.",$text);
 
Das wird so nicht gehen, denn du hast ja einen "Satz", aber dieser Satz kann je nach Artikel unterschiedlich aufgebaut sein.

Sicher fängt jeder Satz mit der Artikelnummer an, aber wie sieht die aus? Ist die immer gleich? Buchstabe+Zahlen+"-"+Zahlen ??

Nur wenn du ein Eindeutiges Schema definieren kannst, kannst du das machen. Falls nach jedem Element ein <br> ursprünglich drin war, würde ich dieses erstmal erstezen durch ein Trennzeichen.
 
Also die Artikelarten kann ich splitten (habe ich ja schon) Weil jedesmal nach dem Wort "Artikelnr." ein neue neue Artikelgruppe anfängt.

Ich posten hier mal den html code der mir zur verfügung steht


PHP:
<!-- saved from url=(0022)https://internet.e-mail -->
<HTML>
<HEAD>
<TITLE>Artikel - Palettenliste</TITLE>
</HEAD>
<BODY BGCOLOR=ffffff>

<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="38%" VAlign=Middle><B><FONT SIZE=1 FACE="Helvetica">Palettenliste<BR></FONT></B></TD>
<TD WIDTH="38%"></TD>
<TD WIDTH="16%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">7. Oktober 2010<BR></FONT></TD>
<TD WIDTH="8%"></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="38%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Lager - Verpackung<BR></FONT></TD>
<TD WIDTH="48%"></TD>
<TD WIDTH="4%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Seite<BR></FONT></TD>
<TD WIDTH="2%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">1<BR></FONT></TD>
<TD WIDTH="8%"></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="81%"></TD>
<TD WIDTH="11%" Align=Right VAlign=Middle><FONT SIZE=1><FONT SIZE=1 FACE="Helvetica">Test<BR></FONT>&nbsp</FONT></TD>
<TD WIDTH="8%"></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="8%" VAlign=Bottom><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Nr.<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="0%"></TD>
<TD WIDTH="7%" VAlign=Bottom><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Einlagerdatum<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="0%"></TD>
<TD WIDTH="15%" VAlign=Bottom><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Chargennr.<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="1%"></TD>
<TD WIDTH="7%" VAlign=Bottom><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Lagerplatzcode<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="1%"></TD>
<TD WIDTH="14%" VAlign=Bottom><FONT SIZE=1><BR><B><FONT SIZE=1 FACE="Helvetica">Beschreibung<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="1%"></TD>
<TD WIDTH="9%" VAlign=Bottom><FONT SIZE=1><BR><B><FONT SIZE=1 FACE="Helvetica">Partienr.:<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="1%"></TD>
<TD WIDTH="5%" Align=Right VAlign=Bottom><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Palettenanzahl<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="2%"></TD>
<TD WIDTH="9%" Align=Right VAlign=Bottom><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Stückzahl<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="2%"></TD>
<TD WIDTH="7%" VAlign=Bottom><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Externe Palettennr.<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="11%"></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="8%" VAlign=Middle><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">Artikelnr.<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="0%"></TD>
<TD WIDTH="8%" VAlign=Middle><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">K042-74<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="1%"></TD>
<TD WIDTH="23%" VAlign=Middle><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">PE Roll 20 OPP/60 PE weiss<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="0%"></TD>
<TD WIDTH="23%" VAlign=Middle><FONT SIZE=1><B><FONT SIZE=1 FACE="Helvetica">00902188<BR></FONT></B>&nbsp</FONT></TD>
<TD WIDTH="37%"></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="15%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Variantencode<BR></FONT></TD>
<TD WIDTH="1%"></TD>
<TD WIDTH="8%" VAlign=Middle><FONT SIZE=1>&nbsp<BR></FONT></TD>
<TD WIDTH="76%"></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Lagerortcode<BR></FONT></TD>
<TD></TD>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">LVS<BR></FONT></TD>
<TD></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Lagerfachcode<BR></FONT></TD>
<TD></TD>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">FACH<BR></FONT></TD>
<TD></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Qualitätsstatus<BR></FONT></TD>
<TD></TD>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Qualitätslager<BR></FONT></TD>
<TD></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="8%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2842415<BR></FONT></TD>
<TD WIDTH="0%"></TD>
<TD WIDTH="7%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">08.09.10<BR></FONT></TD>
<TD WIDTH="14%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">080910<BR></FONT></TD>
<TD WIDTH="2%"></TD>
<TD WIDTH="7%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">5R34515<BR></FONT></TD>
<TD WIDTH="1%"></TD>
<TD WIDTH="13%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">PE Roll 20 OPP/60 PE weiss<BR></FONT></TD>
<TD WIDTH="11%" VAlign=Middle><FONT SIZE=1>&nbsp<BR></FONT></TD>
<TD WIDTH="0%"></TD>
<TD WIDTH="6%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">1<BR></FONT></TD>
<TD WIDTH="2%"></TD>
<TD WIDTH="9%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">10.000<BR></FONT></TD>
<TD WIDTH="2%"></TD>
<TD WIDTH="9%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2856894<BR></FONT></TD>
<TD WIDTH="9%"></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2842414<BR></FONT></TD>
<TD></TD>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">08.09.10<BR></FONT></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">080910<BR></FONT></TD>
<TD></TD>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">5R35113<BR></FONT></TD>
<TD></TD>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">PE Roll 20 OPP/60 PE weiss<BR></FONT></TD>
<TD VAlign=Middle><FONT SIZE=1>&nbsp<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">1<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">10.760<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2856896<BR></FONT></TD>
<TD></TD>
</TR>
</TABLE>
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=0>
<TR>
<TD WIDTH="23%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Total für Qualitätsstatus<BR></FONT></TD>
<TD WIDTH="30%"></TD>
<TD WIDTH="10%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2<BR></FONT></TD>
<TD WIDTH="0%"></TD>
<TD WIDTH="10%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">20.760<BR></FONT></TD>
<TD WIDTH="27%"></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Total für Lagerfachcode<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">20.760<BR></FONT></TD>
<TD></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Total für Lagerortcode<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">20.760<BR></FONT></TD>
<TD></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Total für Variantencode<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">20.760<BR></FONT></TD>
<TD></TD>
</TR>
<TR>
<TD VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Total für Artikelnr.<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">2<BR></FONT></TD>
<TD></TD>
<TD Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">20.760<BR></FONT></TD>
<TD></TD>
</TR>
</TABLE>
<BR><HR>
</TD></TR>
</TABLE>

Das ist eine Artikelgruppe. Jede Artikelgruppe hat eine eigene Tabelle
 
Ich muss die Daten die in dem HTML Code steht weiterverarbeiten in einer DB. Leider kann ich die Daten nur als PDF oder HTML Format bekommen.

Daher muss ich die Sachen über den HTML Code auswertden lassen.

Die ganzen Sachen sollen ausgelesen werden und in meine DB gespeichert werden, sodass ich die selber auswerten kann
 
Deine Beispiel Seite hat neun Tabellen. Davon sind acht für dich interessant.
Also ich würde nicht alle Tabellen aufeinmal in das Array schreiben, sondern von deiner Beispiel HTML Seite ausgehend jede Teil-Tabelle einzeln parsen und dieser dann einen neuen array index geben.
Z.B.:
PHP:
<?php
$html[0] = 'Ganzen Blumbaquatsch aus Tabelle 1'; 
...
$html[n] = 'Ganzen Blumbaquatsch aus Tabelle n'; 
?>
Dann hättest du in $html[7] zb. die Artikel.
Code:
2842415
		08.09.10
	080910
		5R34515
		PE Roll 20 OPP/60 PE weiss
	 
		1
		10.000
		2856894
	
2842414
		08.09.10
	080910
		5R35113
		PE Roll 20 OPP/60 PE weiss
	 
		1
		10.760
		2856896

Das macht es dann einfach auf Leerzeichen zu spliten. Im Moment has du ja alles in ein Index gestopft was nicht wirklich sinnvoll ist.
Naja, so würde ich da drangehen.

Edit: Somit wäre dein Problem der unterschiedlichen Artikelanzahl auch geklärt.
 
Kennste zufällig einen guten den man als .exe im Windows starten kann?
rofl1.gif
Lang nciht mehr so gelacht
 
Das macht es dann einfach auf Leerzeichen zu spliten. Im Moment has du ja alles in ein Index gestopft was nicht wirklich sinnvoll ist.
Naja, so würde ich da drangehen.

Bei Artikelname sind aber Leerzeichen drin

@flaschenkind, Konsorten ;-) = Ja macht euch lustig, hatte was falsch verstanden....nun gut :ugly: nobody is unfehlbar