php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.09.2010, 19:47  
Neuer Benutzer
 
Registriert seit: 24.08.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
HiddenX befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Mit dem Code würdest du dir in der zweiten Zeile den in der ersten gemachten Eintrag wieder überschreiben ... wenn dir selbst das nicht klar ist, dann wird's wirklich Zeit, dass du erst mal Grundlagen lernst.
Warum so harsch? Wieso überschreibt $mdiff $wdiff?

Zitat:
Zitat von ChrisB Beitrag anzeigen
Du weißt doch inzwischen, dass es Arrays gibt - also nutze sie, auch an solchen Stellen.
PHP-Code:
$data['Filiale4711'][2012] = array($wert1$wert2, ...); 
Würde ich ja gern - das sieht sehr gut aus - ich weiss aber nicht wie ich ein solches Konstrukt auslese
Normale Arrays mit foreach($array as $wert) {...}
Aber das?
HiddenX ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.09.2010, 19:51  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von HiddenX Beitrag anzeigen
Warum so harsch?
Wieso lernst du nicht die Grundlagen, bevor du mit sowas anfängst?

Zitat:
Wieso überschreibt $mdiff $wdiff?
Weil du unter einem Array-Schlüssel nur einen Wert bzw. ein Datenobjekt ablegen kannst.

Das ist im Prinzip auch nichts anderes, als wenn du folgende zwei Zuweisungen hintereinander schreiben würdest:
PHP-Code:
$x 15;
$x 23
Da erwartest du doch wohl auch nicht, in $x jetzt irgendwie beide Werte vorzufinden, oder?

Zitat:
Würde ich ja gern - das sieht sehr gut aus - ich weiss aber nicht wie ich ein solches Konstrukt auslese
Grundlagen ...
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 07.09.2010, 21:03  
Neuer Benutzer
 
Registriert seit: 24.08.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
HiddenX befindet sich auf einem aufstrebenden Ast
Standard

Ich möchte mich hier nicht streiten, ich möchte etwas lernen.
Das ist der Grund, warum ich in diesem Forum - übrigens bei Einsteiger - schreibe und Hilfe bei einem Problem suche das meine momentanen Kenntnisse überfordert.

Wirkliche Grundlagen denke ich schon zu beherrschen. Mir ist klar, dass $x bei einer zweiten Zuweisung überschrieben würde.
Meine Variablen hießen aber $mdiff ("m", wie Menge) und $wdiff ("w", wie Wert).
OK? Können wir dann zurück zur Sache kommen?

Wo im PHP-Manual steht das? Unter welchen Begriffen müsste ich hier im Forum suchen oder nach was googlen um diese "Grundlage" zu finden?

Im PHP-Manual findet sich auch nur die ganz normale foreach-Schleife um eindimensionale Arrays auszulesen.
Die dürftigen Beispiele mit mehrdimensionalen Arrays erschöpfen sich darin, die Werte einzeln oder mit print_r() auszulesen.

_Einen_ Wert bei deinem Beispiel zu bekommen ist mir vermutlich schon klar, das ginge wohl mit
PHP-Code:
$arraydaten $data['Filiale4711'][2012]; 
$arraydaten könnte ich dann ganz normal mit foreach auslesen. Damit habe ich aber nur eine Position aus $data.
Gibt es hier auch eine Möglichkeit mit foreach zu arbeiten?
Oder lasse ich das $data durch zwei Schleifen, eine "äußere" und eine "innere", laufen?

Sorry noch mal wenn ich so blöd fragen muss, aber ich habe hierzu keine Beispiele gefunden.
HiddenX ist offline  
Alt 07.09.2010, 21:21  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von HiddenX Beitrag anzeigen
Mir ist klar, dass $x bei einer zweiten Zuweisung überschrieben würde.
Meine Variablen hießen aber $mdiff ("m", wie Menge) und $wdiff ("w", wie Wert).
Ja - aber die standen in dem Code, auf den meine Anmerkung bezogen war, auf der rechten Seite einer Zuweisung - und links stand zwei mal das gleiche.

Zitat:
Im PHP-Manual findet sich auch nur die ganz normale foreach-Schleife um eindimensionale Arrays auszulesen.
Die dürftigen Beispiele mit mehrdimensionalen Arrays erschöpfen sich darin, die Werte einzeln oder mit print_r() auszulesen.
Auf der nächsten Ebene geht's ganz genauso.

Zitat:
Gibt es hier auch eine Möglichkeit mit foreach zu arbeiten?
Wozu? Wozu überhaupt eine Schleife?

Die genaue Struktur der Daten auf der zweiten Ebene ist dir doch bekannt, schließlich erstellst du sie selbst explizit.
Dann kannst du doch an der Stelle, wo du ein bestimmtes Element dieser Daten haben willst, gleich direkt mit dem entsprechenden Index darauf zugreifen.

Zitat:
Wirkliche Grundlagen denke ich schon zu beherrschen.
Deine Fragen hier lesen sich aber anders.

Vorschlag: Lerne erst mal mit Arrays umzugehen, losgelöst vom aktuellen Projekt. Erstelle dir selber Beispieldaten (müssen nicht unbedingt irgendeine wirkliche Bedeutung haben) - und schau dann, wie sich damit umgehen lässt, wenn du Schleifen verwendest, direkte Zugriffe, etc.
Schau dir auch die Array-Funktionen an, um wenigstens schon mal ein ungefähres Gefühl dafür zu bekommen, welche sich für was eignen und wie sie sich anwenden lassen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 08.09.2010, 09:38  
Neuer Benutzer
 
Registriert seit: 24.08.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
HiddenX befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Ja - aber die standen in dem Code, auf den meine Anmerkung bezogen war, auf der rechten Seite einer Zuweisung - und links stand zwei mal das gleiche.
Was mich wirklich ärgert, ist dass wir hier mehr besserwisserische Diskussionen führen, als zur Lösung meiner Frage beizutragen.
Aber wer will schon als blöd hingestellt werden- also mach' Dir bitte die Mühe und schau' mein Beispiel noch mal genau an. Du wirst feststellen, dass die beiden Variablen (ja, auch die auf der linken Seite) sich natürlich unterscheiden.

Zitat:
Zitat von ChrisB Beitrag anzeigen
Wozu? Wozu überhaupt eine Schleife?
Weisst du noch worum es geht? Es geht darum alle Filialen (der erste Teil des Arrays) in allen Jahren (der zweite Teil des Arrays) in einer Tabelle auszugeben.
Meine Frage war: Gibt es hier eine Möglichkeit mit foreach zu arbeiten, oder lasse ich das Array durch zwei schleifen laufen. Einmal um alle Filialen auszugeben und darin nochmal eine Schleife für alle Jahre.

Zitat:
Zitat von ChrisB Beitrag anzeigen
Die genaue Struktur der Daten auf der zweiten Ebene ist dir doch bekannt, schließlich erstellst du sie selbst explizit.
Dann kannst du doch an der Stelle, wo du ein bestimmtes Element dieser Daten haben willst, gleich direkt mit dem entsprechenden Index darauf zugreifen.
Jepp. Das ist auch nicht das Problem.

Zitat:
Zitat von ChrisB Beitrag anzeigen
Deine Fragen hier lesen sich aber anders.
Vielleicht werden sie auch nur nicht richtig verstanden?

Zitat:
Zitat von ChrisB Beitrag anzeigen
Vorschlag: Lerne erst mal mit Arrays umzugehen
Ich kann mit normalen Arrays umgehen. Nur mehrdimensionale Arrays sind für mich etwas neues. Hier hatte ich mir eine Hilfestellung erhofft und kein Assessment.
Es wäre schön, wenn auf einfache Fragen auch einfache Antworten gegeben würden, ohne gleich die Empfehlung auszusprechen wieder mit echo 'Hallo Welt'; anzufangen.

Geändert von HiddenX (08.09.2010 um 10:04 Uhr).
HiddenX ist offline  
Alt 08.09.2010, 10:55  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Das Prinzip und die Regeln für Arrays ändern sich nicht!

Bei einem Mehrdimensionalen Array wird als Wert halt wieder ein Array eingetragen, anstatt eines skalaren Wertes (streng genommen ist ein String auch nur ein Array von Chars).
Das kannst du beliebig fortführen.

PHP-Code:
$a = array (
  
=> 'huhu',
  
=> 'test'
  
=> array(
      
=> 'neues array',
      
=> 'neue schlüssel',
      
=> array (
          
=> 'und so weiter',
          
=> 'und so fort'
            
)
      )
);

/*
$a[1] -> String: huhu
$a[3] -> array
$a[3][1] -> String: neues array
$a[3][3] -> array
$a[3][3][1] -> String: und so weiter
*/ 
Alles klar?
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 08.09.2010, 13:53  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von HiddenX Beitrag anzeigen
also mach' Dir bitte die Mühe und schau' mein Beispiel noch mal genau an. Du wirst feststellen, dass die beiden Variablen (ja, auch die auf der linken Seite) sich natürlich unterscheiden.
Mea culpa, das habe ich tatsächlich übersehen.

Zitat:
Weisst du noch worum es geht? Es geht darum alle Filialen (der erste Teil des Arrays) in allen Jahren (der zweite Teil des Arrays) in einer Tabelle auszugeben.
Meine Frage war: Gibt es hier eine Möglichkeit mit foreach zu arbeiten, oder lasse ich das Array durch zwei schleifen laufen. Einmal um alle Filialen auszugeben und darin nochmal eine Schleife für alle Jahre.
Natürlich zwei Schleifen.

Für alle Filialen hast du Daten in deinem Array vorliegen - da bietet sich also eine foreach-Schleife an, um erst mal die Ausgabe je Filiale zu steuern, also die „Zeile“ in deiner Ausgabe-Tabelle.
Für die Jahre hast du auf der zweiten Ebene nicht immer Daten vorliegen - da ist foreach also weniger geeignet. Du weißt aber, über welchen Zeitraum von Jahren du die Ausgabe erstellen willst* - also bietet sich da bspw. eine for-Schleife an. In der wird dann geschaut, gibt es einen Eintrag zum Jahr x auf der zweiten Ebene des Arrays - wenn ja, werden die Daten ausgegeben, wenn nicht halt '-' o.ä.

* Wenn der Zeitraum nicht vorher festgelegt wird, sondern sich aus den DB-Daten ergibt - dann musst du ggf. noch das Minimum und Maximum der Jahreszahlen vorher ermitteln, damit du weißt, wie weit die innere Schleife laufen muss.

Zitat:
Ich kann mit normalen Arrays umgehen. Nur mehrdimensionale Arrays sind für mich etwas neues. Hier hatte ich mir eine Hilfestellung erhofft und kein Assessment.
OK, aber wo dein Problem damit liegt, ist mir nicht so richtig klar.

Wenn du ein zweidimensionales Array hast, und das auf erster Ebene mit einer foreach-Schleife durchläufst, foreach($daten as $filialdaten) - dann ist $filialdaten natürlich wieder ein Array, eine „Zeile“ aus deinem Gesamt-Array, wenn du dir das mal als zweidimensionale „Matrix“ vorstellst. Und mit dem kannst du dann wieder genauso arbeiten, wie mit jedem anderen Array auch - in einer Schleife durchlaufen, per Index zugreifen, etc.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 13.09.2010, 09:52  
Neuer Benutzer
 
Registriert seit: 24.08.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
HiddenX befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank, Ihr habt mir viel weitergeholfen, das Script ist jetzt statt in 20 Sekunden in 0,6 Sekunden durch!

Gruß
HiddenX
HiddenX ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mySQL Tabelle ausgeben und Tabellendarstellung je nach Inhalt anpassen Hoffi PHP Tipps 2010 10 26.07.2010 23:00
MSSQL Tabelle mit Array ausgeben da-unknown Datenbanken 3 21.03.2010 04:04
Zahlen mit Hilfe einer Tabelle ausgeben Infoschueler PHP Tipps 2010 8 17.03.2010 23:00
Bestehende php /Myqsl Tabelle Neben einander aus geben Totti-Totti PHP Tipps 2009 3 21.12.2009 11:00
[Erledigt] Einzelne Zeilen aus SQL Tabelle mittels Hyperlink ausgeben mainconcept PHP Tipps 2009 3 26.11.2009 14:15
Daten aus Tabelle durch Formular ausgeben dypor PHP Tipps 2009 9 21.11.2009 09:23
Ein einzelnes Attribut nur einmal in Tabelle ausgeben jimbo PHP Tipps 2009 5 01.11.2009 00:20
[Erledigt] Array in Tabelle als Schleife ausgeben? princemichi Datenbanken 2 16.06.2009 21:24
Tabelle / SQL-Inhalte als PDF ausgeben madeoutofdreams PHP Tipps 2009 1 05.05.2009 10:13
Bei Suche in Tabelle nur Felder ausgeben die das Suchwort beinhalten MichaelB Datenbanken 6 01.03.2009 23:38
Spalteninhalt in Tabelle ausgeben markbraue PHP Tipps 2008 4 10.06.2008 14:28
werte aus tabelle nebeneinander ausgeben Schiedsrichter PHP Tipps 2008 2 15.02.2008 10:20
[Erledigt] [Problem] Datenbank in Tabelle ausgeben PHP Tipps 2006 2 11.01.2006 16:41
[Erledigt] Ganze Tabelle ausgeben PHP Tipps 2004-2 1 21.11.2004 16:48
MySQL select in einer Tabelle ausgeben PHP Tipps 2004 2 11.09.2004 18:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zeitraum in php als tabelle ausgeben, mit print_r in tabelle ausgeben php, php arrays aus einer tabelle ausgeben, foreach tabelle ausgeben php, ft 71510 anleitung, php foreach schleife in tabelle ausgeben, print_r in tabelle ausgeben, ft 71510 betriebsanleitung, php zweidimensionales elemet in tabelle ausgeben, php foreachschleife in tabelle ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:14 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum