Tach!
echte mehrdimensionale Arrays
tja, nun gehen aber die meinungen auseinander, was ein array ist, geschweige denn, was ein "echtes" array ist. klar, in der c-welt ist das noch recht einfach. da gibt's statische arrays und dynamische. in c++ wird's schon schwammiger, denn da bezeichnet man nicht nur die arrays, die's in c schon gab, als arrays, sondern auch hin und wieder z.b. std::vector und aehnliches. wenn man die arrays aus c meint, muss man dagegen deutlich von c-style-arrays sprechen, um nicht ggf. missverstanden zu werden.
Wenn ich das richtig sehe, hat man auch bei einem Vector die gleichen Zugriffsmöglichkeiten wie bei einem Array: fortlaufender lückenloser numerischer Schlüssel, der eine echte Position angibt. Insofern sieht mir der Vector wie ein erweitertes Array aus.
nimmt man das attribut "mehrdimensional" hinzu, wird's nur noch mehrdeutiger. in java wird aehnlich wie in php bei "arrays of arrays" von mehrdimensionalen arrays gesprochen, vgl. Java ist auch eine Insel, 3.8.10 Mehrdimensionale Arrays
Java bezeichnet als Array Gebilde, die ebenfalls einen fortlaufenden lückenlosen numerischen Schlüssel haben. Andere Gebilde haben andere Namen, z.B. HashMap. Mehrdimensionale Arrays oder auch Arrays of Arrays sind dort ebenfalls aus diesen einfachen Strukturen zusammengesetzt. Wenn man aber "assoziative Arrays" - sprich Maps - zusammensetzt, muss man (zumindest ich bemühe mich dann) langsam aber sicher aufhören, beides gleichzusetzen und gleich zu benennen.
Kämest du - ohne PHPs Definition von Array zu betrachten - bei Java auf die Idee, eine verschachtelte Struktur aus HashMaps als mehrdimensionales Array zu bezeichnen? PHP legt mit seinem Ansatz, seine Universalstruktur als Array zu bezeichnen, leider den Grundstein für eine ziemlich starke Verwässerung des Begriffs Array, der anderenorts deutlich spezialisierter verwendet wird. Und ich bleibe dabei, dass es für das Verständnis nicht förderlich ist, das alles als eins zu betrachten.
Es geht mir nicht darum, die richtigen Begriffe nur um ihrer selbst Willen zu verwenden.
worauf ich hinaus will: es gibt haeufig nicht "die richtigen begriffe", so auch in diesem fall.
Das sehe ich anders. Es gibt spezialisierte Begriffe. Ich sehe aber auch, dass sie häufig im PHP-Umfeld unbekannt sind und das allumfassende "Array" leider nicht unbedingt förderlich beim Lösungsfinden ist, ganz besonders nicht, wenn man sämtliche verschachtelte Strukturen lediglich als "mehrdimensionales Array" bezeichnet.
Ich entnehme deinen Ausführungen, dass du gern möchtest, dass der Begriff mehrdimensionales Array - zumindest in der PHP-Welt - für sämtliche verschachtelte PHP-Array-Strukturen "ungestraft" verwendet werden kann. Was bringt es denn aber praktisch für die Lösungsfindung konkreter Probleme, wenn man nicht mehr versuchen sollte, den Blick des Probleminhabers zu schärfen und die Unterschiede zwischen den Strukturen und die besonderen Eigenschaften seines vorliegenden Gebildes aufzuzeigen? Dass eine Mehrheit Dinge so macht, dass es ihr letztlich nicht zum Vorteil gereicht, heißt nicht, dass man damit aufhören sollte oder gar nicht erst anfangen sollte, sich mit Aufklärung zu versuchen.
Wenn jedoch die falsche Verwendung von Begriffen dazu führt,
und auch hier: die verwendung von wolowitz, dem php-manual, dem genannten java-buch usw. ist nicht falsch.
Dann schau nochmal genau hin. Das PHP-Handbuch sagt nicht, dass sämtliche verschachtelte Arrays mehrdimensionale Arrays sind, sondern dass man mit dem Typ "Array" mehrdimensionale Arrays erstellen kann - genauso wie man damit Baumstrukturen erstellen kann. Es definiert nicht, dass ein Baum ein mehrdimensionales Array ist. Und das Java-Buch beschäftigt sich in dem von dir verlinkten Kapitel nur mit "echten" Arrays - da ist die Bezeichnung ja auch völlig akzeptabel und wenig verwirrend. Die anderen Gebilde sind im Kapitel "Datenstrukturen und Algorithmen" getrennt beschrieben. In diesem Kapitel kommt kein Wort vor, dass "dimension" enthält. Dieses Javabuch ist also als Beweis ungeeignet, dass verschachtelte Maps auch außerhalb großer Teile der Welt der PHP-Anwender als mehrdimensionale Arrays bezeichnet werden.
Das heißt nicht, dass du nun auf die Suche nach Beweisen gehen sollst. Das bringt keine Verbesserung in die Angelegenheit.
dass das eigentliche Problem nicht erkannt werden kann, dann ist es meiner Meinung nach nicht förderlich, nicht über den Irrtum aufzuklären.
man haette hier das problem loesen koennen, ohne dem OP vorzuwerfen, einen begriff vermeintlich falsch benutzt zu haben. (er hat ihn naemlich gar nicht falsch benutzt.)
Es gibt immer tausend Möglichkeiten, zu antworten ohne die (vermeintlichen) Probleme hinter einem bestimmten Lösungsansatz oder einer Wortwahl anzusprechen. Das ist aber nicht mein Stil. Ich möchte das auch in Zukunft ansprechen und diskutieren dürfen.
du bist es evtl. gewohnt, den begriff anders zu verwenden. andere sind es aber anders gewohnt. wer hat nun recht? beide, solange sie nicht den jeweils anderen als falschen begriffsverwender darstellen wollen.
Die Frage nach dem Recht stellt sich mir nicht. Du bringst mir in die Sache mehr Drama rein, als ich eigentlich beabsichtigt hatte. Mir geht es - nochmal gesagt - nicht primär um den Begriff, sondern dass man die eigentlich vorhandene Struktur besser erkennt. Der Begriff ist dabei aus meiner Sicht (in manchen Fällen) ein Erkenntnisverhinderer, weswegen ich ihn zumindest zu hinterfragen anregen möchte.
was ich sagen wollte: es ist gar nicht falsch, es schwirren unterschiedliche definitionen rum. solange es keine einheitliche definition dazu gibt, muss man grundsaetzlich alle akzeptieren.
Das ist auch aus logischer Sicht nicht besonders sinnvoll argumentiert. Es besteht kein Muss, alles zu akzeptieren und nichts anzweifeln zu dürfen. Und wenn dieses Muss bestünde, wie sollte man es dann wagen dürfen, eine genaue Definition zu erstellen?
wenn man, wie du oder ich, weiss, dass es versch. definitionen gibt, sieht man meist eh aus dem kontext, was gemeint ist.
Das habe ich auch gesehen. Nur bin nicht ich es, der das Problem verstehen muss, sondern der Probleminhaber. Wenn es ihm hilft, mit besseren Begriffen zur Erkenntnis zu gelangen - und davon bin ich auch im vorliegende Fall erstmal ausgegangen - warum soll ich dann zwingend ("muss") stillschweigend den Aufklärungsversuch unterlassen?
man sollte aber nicht die aus geschmacklichen gruenden praeferierte version als die einzig richtige verkaufen.
Meinen Geschmack hab ich dazu nicht befragt, mein Verstand hat mich zu der gegebenen Antwort bewogen. Und ich sehe keineswegs, dass "mehrdimensionales Array" ein vollkommen und generell inakzeptabler Begriff ist, wenn es um PHP geht. Er wird nur oftmals nicht für das damit bezeichnete Gebilde verwendet - so auch in diesem Fall - das anderenorts andere Namen bekommt.
Man bezeichnet ja die Dinge unterschiedlich, um die Unterschiede deutlich zu machen.
wenn's denn so einfach waere. selbst in der mathematik muss man jedes mal zu beginn einer arbeit definieren, was man [...] meint [...]
Und? Sind Unzulänglichkeiten anderenorts und im eigenen Umfeld ein Grund, nichts für eine Verbesserung zu unternehmen?
dedlfix.