Meine Herren!
Das ist aber sehr sehr sehr komplex für mein Vorhaben.
Das ist zu komplex für fast jedes Vorhaben.
Die Pendants für ein übliches Zeilen-Array sehen übrigens so aus:
$spalte = get_record( $spaltenArray, 42 );
$zeile = $zeilenArray[ 42 ];
update_record( $spaltenArray, 42, $geänderteSpalte );
$zeilenArray[ 42 ] = $geänderteZeile;
delete_record( $spaltenArray, 42 );
unset( $zeilenArray[ 42 ] );
insert_record( $spaltenArray, 43, $neueSpalte );
$zeilenArray[] = $neueZeile;
Ich finde diese Operationen auf Zeilen-Arrays deutlich attraktiver.
Es gibt weitere Nachteile:
Sie sind inkompatibel zu objekt-orientierten Entwürfen:
$zeilenArray[] = new Auto();
foreach( $zeilenArray as $auto ){
$auto->gibGas();
}
$spaltenArray???
Sie sind im Gegensatz zu Toms Behauptungen schwerer zu sortieren:
Angenommen ich habe ein Zeilenarray von Produkten vorliegen, die ich nach ihren Preis sortieren möchte, das würde ich so machen:
usort( $zeilenArray, function( $a, $b ) {
if ( $a['preis'] <= $b['preis'] ){
return -1;
} else {
return 1;
}
});
Keine Ahnung, wie man das ähnlich expressiv mit einem Spalten-Array anstellen sollte. Vielleicht kann Tom uns ja was zeigen. Machen wir die Aufgabe zum Spaß noch ein weniger schwieriger: Jedes Produkt hat einen Preis und Versandkosten, wir wollen nun nach dem Gesamt-Preis sortieren:
usort( $zeilenArray, function( $a, $b ) {
if ( $a['preis'] + $a['versandkosten'] <= $b['preis'] + $b['versandkosten'] ) {
return -1;
} else {
return 1;
}
}
Ich sehe keinen Vorteil in der Verwendung von Spalten-Arrays, jede noch so einfache Operation auf den Daten wird vollkommen unnötiger Weise verkompliziert. Ich bemerke hier nur einen schlechten Entwurf.
“All right, then, I'll go to hell.” – Huck Finn