1UnitedPower: Suche in einem Mehrdimensionalem Array

Beitrag lesen

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