php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-03-2008, 11:39
onkelgigal
 Newbie
Links : Onlinestatus : onkelgigal ist offline
Registriert seit: Feb 2008
Beiträge: 9
onkelgigal ist zur Zeit noch ein unbeschriebenes Blatt
Standard PHP komplexes Array

Hallo Ihr! Ich hab ein Problem mit nem recht komplexen PHP-Array, hier die Struktur mit print_r:

Code:
Array
(
    [BelegungsPlan] => Array
        (
            [DruckEinheit] => Array
                (
                    [0] => Array
                        (
                            [Nr] => CS05
                            [Zylinder] => Array
                                (
                                    [0] => Array
                                        (
                                            [Nr] => 1
                                            [Farben] => 5
                                            [Bahn] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [Nr] => 4
                                                            [Seite1] => 11
                                                            [Seite2] => 41
                                                        )

                                                    [1] => Array
                                                        (
                                                            [Nr] => 3
                                                            [Seite1] => 28
                                                            [Seite2] => 58
                                                        )

                                                    [2] => Array
                                                        (
                                                            [Nr] => 2
                                                            [Seite1] => 13
                                                            [Seite2] => 43
                                                        )

                                                    [3] => Array
                                                        (
                                                            [Nr] => 1
                                                            [Seite1] => 26
                                                            [Seite2] => 56
                                                        )

                                                )

                                        )

                                )

                        )

                    [1] => Array
                        (
                            [Nr] => CS06
                            [Zylinder] => Array
                                (
                                    [0] => Array
                                        (
                                            [Nr] => 2
                                            [Farben] => 6
                                            [Bahn] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [Nr] => 5
                                                            [Seite1] => 12
                                                            [Seite2] => 42
                                                        )

                                                    [1] => Array
                                                        (
                                                            [Nr] => 4
                                                            [Seite1] => 29
                                                            [Seite2] => 59
                                                        )

                                                    [2] => Array
                                                        (
                                                            [Nr] => 3
                                                            [Seite1] => 14
                                                            [Seite2] => 44
                                                        )

                                                    [3] => Array
                                                        (
                                                            [Nr] => 2
                                                            [Seite1] => 27
                                                            [Seite2] => 57
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)
Das Array wurde aus einem xml file erstellt und ich will das jetzt iwie so mit foreach verschachteln das ich die Datensätze in eine MySQL DB schreiben kann.... ich hoffe mir kann wer helfen!

Die DB könnte dann so aussehen:


PK: druckeinheitid
FK: bahn1id - bahn4id

druckeinheit(druckeinheitid, druckeinheitnr, zylindernr, zylinderfarben, bahn1id, bahn2id, bahn2id, bahn3id, bahn4id)

PK: bahnid
bahn(bahnid, bahnnr, seite1, seite2)

Ich hab schon recht viel mit verschachtlungen von for-each schleifen rumexperimentiert aber konnte keinen befriedigenden Lösungsansatz finden.... Danke
Mit Zitat antworten
  #2 (permalink)  
Alt 18-03-2008, 11:42
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.732
Kropff befindet sich auf einem aufstrebenden Ast
Standard

arbeite mit einer rekursion. das ist eine funktion, die sich immer wieder selber aufruft, solange eine bedingung vorhanden ist. in deinem fall is_array

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 18-03-2008, 11:57
onkelgigal
 Newbie
Links : Onlinestatus : onkelgigal ist offline
Registriert seit: Feb 2008
Beiträge: 9
onkelgigal ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die schnelle antwort, aber hast du dafür vieleicht ein Bsp. oder Link etc?

~edit:

Hab schon was kleines gefunden (google)!



Code:
<?php

   function echoarray($var)
    {
        if(is_array($var)) 
{            echo "<ul>\n";  
          foreach($var as $value) {      
          echo "<li>\n";    
            echoarray($value);     
           echo "</li>\n";      
      }            echo "</ul>\n";  
      } else {   
         echo $var;   
     }  
  }?>

Bin mir aber noch nicht so im klaren ob mir das weiterhilft xD Bin für alle tips dankbar ;9

Geändert von onkelgigal (18-03-2008 um 13:27 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 18-03-2008, 12:04
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.732
Kropff befindet sich auf einem aufstrebenden Ast
Standard

hier werden zwar ordner durchlaufen, ist aber dasselbe in grün.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 18-03-2008, 13:02
onkelgigal
 Newbie
Links : Onlinestatus : onkelgigal ist offline
Registriert seit: Feb 2008
Beiträge: 9
onkelgigal ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dieser Teil gibt mir einfach mal die kompletten Inhalte des Arrays aus, aber wie find ich raus an welcher stelle im Array er gerade is....

also z.B. wenn er an der Stelle [BelegungsPlan][DruckEinheit][0][Nr] ist dann Das Feld druckeinheitnr in der db füllen, oder wenn er bei [BelegungsPlan][DruckEinheit][0][Zylinder][0][Nr] ist dann das feld zylindernr füllen. Ich steig da noch nicht ganz so durch !


Code:
function echoarray($var)
{
    if(is_array($var))
	{
		
		foreach($var as $key => $value)
		{
			echoarray($value);     
		}    
		   
	}
	else
	{        
		echo $var . "<br>";    
	}   
}
Mit Zitat antworten
  #6 (permalink)  
Alt 18-03-2008, 13:19
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.732
Kropff befindet sich auf einem aufstrebenden Ast
Standard

brich bite erst mal bei deinem vorletzten thread den code um! sonst muss man kilometerweit nach rechts scrollen.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 18-03-2008, 14:12
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Dazu ist keine Rekursion nötig, da reichen ein paar verschachtelte Schleifen aus.
Du solltest deine Datenbankstruktur aber erstmal normalisieren! Die bahnXid-Felder solltest du nicht in die druckeinheit-Tabelle schreiben, sondern über eine Referenztabelle miteinhander verknüpfen oder eine Eltern-Kind-Struktur verwenden. Mit druckeinheit zu zylinder scheint es ähnlich zu sein! Du musst halt gucken, wie deine Grundstruktur aussieht. Für mich schaut das so aus:
Code:
Belegungsplan
   Druckeinheit 1
      Zylinder 1
         Bahn 1
         Bahn 2
         ...
      Zylinder 2
         ...
      ...
   Druckeinheit 2
      ...
   ...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
Maqetta Open Source  HTML5-Editor ansehen Maqetta Open Source HTML5-Editor

Einen WYSIWYG-Editor zur visuellen Erstellung von Userinterfaces in HTML5 (Drag-and-Drop)

13.05.2019 Berni | Kategorie: HTML5/ EDITOR
NodeBB

NodeBB ist eine Foren-Software auf NodeJS-Basis

13.05.2019 Berni | Kategorie: PHP/ Forum PHP Software
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:03 Uhr.