dedlfix: Organisation von PHP-Arrays

Beitrag lesen

Hi!

Nein, result ist nicht mehrdimensional - ein Array in PHP ist nie mehrdimensional. result ist ein Array, dessen Felder halt wieder Arrays sind.
Diese Diskussion können wir uns sparen.
Man kann sich Arrays in PHP als Baumstrukturen vorstellen. Datenkonstrukte, die Listen in Listen enthalten, werden nach einschlägoger Literatur auch als Bäume bezeichnet.
Wie das Ganze intern aufgebaut ist, geht uns als PHP-Programmierer erstmal nichts an (auch wenn es durchaus interessant ist).

Nicht der innere Aufbau ist interessant sondern das was nach außen hin zu sehen ist. Und das ist, wenn man richtig hinsieht, ein Array, dessen Elemente Arrays sind. Wenn man nun aus diesen inneren Arrays etwas haben will, muss man durch das außere Array laufen und dabei von jedem einzelnen inneren Array den entsprechenden Wert verarbeiten.

Anzunehmenderweise kommen die Daten des OPs bereits in der gezeigten Form an. Wenn man nur eine Berechnung damit anstellen will, schreibt man sich besser den Dreizeiler passend für die gegebene Form, als erst die Daten umzusortieren und dann mit einer nur wenig anderen Form des Durchlaufens die Daten zu ermitteln. Es stimmt schon, dass man auf ein so genanntes Spalten-Array Funktionen wie array_sum() oder ähnliche sehr einfach anwenden kann, aber mit nur wenig mehr Aufwand kann man auch beim Zeilen-Array sein Ziel erreichen. Wenn die Aufgabenstellung komplexer wird, und man die vorgefertigten Funktionen nicht mehr verwenden kann, unterscheiden sie die Zu-Fuß-Lösungen beider Organisationsformen auch nciht wesentlich voneinander.

Das Spalten-Array ist eine interessante Alternative zum Zeilen-Array, aber es wird im klassischen PHP-Umfeld kaum wirkliche Anwendungsfälle dafür geben. Die Daten kommen meist üblicherweise in Zeilen-Form aus den Datenhaltungen und werden nicht sehr oft mehr als einmal iteriert. Am Requestende wird sowieso wieder alles verworfen, so dass ein Umsortieren nur Mehraufwand darstellt, den man durch die etwas einfachere Datenzusammenfassbarkeit oder Sortierfähigkeit nicht wieder rausholen kann. Es lohnt sich daher für solche in der Regel einfachen Fälle kaum, ernsthaft über Spalten-Arrays nachzudenken.

Lo!