Hi,
Ich bin jetzt auf den objektorientierten Lösungsansatz gespannt. Der könnte geeignet sein, das Problem zu ein für alle mal beheben!
Ich habe darüber während meines stupiden Tages-Frondienstes nochmal nachgedacht. Ich glaube, dass das wirklich eine gute Idee wäre, dieses ständig wiederkehrende "Problem" einfach mal durch eine Klasse zu knacken.
alles relevante hat Sven Rautenberg schon gesagt. Im wesentlichen geht es um die Benutzung von map-Funktionen (array_map im Falle von PHP) und Callback-Funktionen.
Dies halte ich auch für "sauberer", da sie auch in anderen Sprachen meist genauso umgesetzt werden würden. Dadurch braucht man den Wust an unübersichtlichen Funktionen nicht mehr, den PHP hat. Als Beispiel seien hier die Sortierfunktionen erwähnt. PHP braucht 13 verschiedene Funktionen, während z.B. perl dank Callback-Funktion mit einer auskommt.
my @array = sort { $a{'price'} < $b{'price'} } @unsorted_array;
Eine kurze Möglichkeit (in PHP) dafür kenne ich zumindest nicht, eine kurze Recherche liefert auch nur eher umständliche Methoden wie z.B. dieser Userkommentar auf php.net.
Trotzdem würde _ich_ nicht auf die von dir vorgestellte Art, Daten zu speichern, ausweichen. Die Nachteile erscheinen mir einfach zu groß, insbesonders, wenn man sich überlegt, mit welchen Laufzeiten die von dir vorgestellten Ausweichfunktionen funktionieren.
Bis die Tage,
Matti