Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrdimenisonale Arrays

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrdimenisonale Arrays

    Liebes Forum
    Gibt es in php eigentlich wirklich keine mehrdimensionalen Felder?
    Was man immer findet sind verzweigte Felder (Arrays in Arrays), aber einfache mehrdimensionale Arrays hab ich noch nicht gefunden.

  • #2
    Zitat von Kerstin83 Beitrag anzeigen
    Was man immer findet sind verzweigte Felder (Arrays in Arrays), aber einfache mehrdimensionale Arrays hab ich noch nicht gefunden.
    Hä? Es GIBT keine Mehrdimensionalen Arrays. In KEINER Programmiersprache. Das sind IMMER Arrays in Arrays.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Natürlich gibt es in anderen Programmiersprachen mehrdimensionale Felder, zum Beispiel in C#.
      In php wüsste ich nicht. Aber würde mich auch interessieren.

      Kommentar


      • #4
        Ohja, das sieht für den Anwender so aus, intern wird es aber als Array in Array oder sogar als 1D-Array welches umgerechnet wird gehandhabt.
        [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

        Kommentar


        • #5
          Zitat von stackoverflow Beitrag anzeigen
          Natürlich gibt es in anderen Programmiersprachen mehrdimensionale Felder, zum Beispiel in C#.
          C#
          Code:
          // Two-dimensional array. 
          array2D = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
          (Die Typisierung habe ich entfernt, damit es leichter zu vergleichen ist.
          Beispiel von: http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx

          PHP
          PHP-Code:
          $array2D = [ [ 1], [ 3], [ 5], [ 7] ]; 
          Ist doch genau das gleiche? Man sieht doch auch bei C# das die geschachtelten {} im Endeffekt auf nichts anderes hinauslaufen.

          Ich verstehe ehrlich gesagt auch nicht was man da gerne anders hätte?

          Kommentar


          • #6
            ok, danke, das war jetzt ein Beispiel für ein verzweigtes Arrays. Wir sprechen aber von mehrdimensionalen Arrays.
            Ohja, das sieht für den Anwender so aus,
            Natürlich intern ist das alles gleich. Aber in einer Hochsprache will man sich ja nicht um die Internas kümmern. Da ist genau das was für den Anwender so aussieht wichtig.
            Intern gibt es zum Beispiel auch keine Strings, nur boolsche Werte.

            Kommentar


            • #7
              Zitat von stackoverflow Beitrag anzeigen
              ok, danke, das war jetzt ein Beispiel für ein verzweigtes Arrays. Wir sprechen aber von mehrdimensionalen Arrays.
              Nein, das war ein Beispiel für ein mehrdimensionales Array, siehe auch Überschrift. Ich habe aber kurz zu mehrdimensionalen und (in C# so genannte) jagged Arrays (Array in Array) nachgelesen. Da gibt es wenige Unterschiede. Der Hauptunterschied, das bei jagged Arrays nicht alle Sub-Arrays die gleiche Größe haben müssen, ist bei PHP ohnehin irrelevant, weil die Arrays in PHP wesentlich mehr können als in anderen Programmiersprachen.

              Zitat von stackoverflow Beitrag anzeigen
              Intern gibt es zum Beispiel auch keine Strings, nur boolsche Werte.
              Jein. Das ist irrelevant, sogar in Assembler hat man noch Strings.

              Kommentar


              • #8
                Zitat von tkausl Beitrag anzeigen
                Hä? Es GIBT keine Mehrdimensionalen Arrays. In KEINER Programmiersprache. Das sind IMMER Arrays in Arrays.
                ... ist das nicht AB einem gewissen Punkt dann auch Auslegungssache?

                Kommentar


                • #9
                  Zitat von rkr Beitrag anzeigen
                  ... ist das nicht AB einem gewissen Punkt dann auch Auslegungssache?
                  Klar, wenn die Sprache dir was vorgaukelt. Allerdings habe ich immernoch nicht wirklich verstanden, was der TE überhaupt genau will.
                  [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                  Kommentar


                  • #10
                    Zitat von stackoverflow Beitrag anzeigen
                    ok, danke, das war jetzt ein Beispiel für ein verzweigtes Arrays. Wir sprechen aber von mehrdimensionalen Arrays.
                    [...]

                    Wie wäre es dann mit einem Beispiel wie du dir das vorstellst bevor wir zu Tode rätseln?
                    [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                    Kommentar


                    • #11
                      Bei einem verzweigten Array hat man ein "Oberarray" und in dem befinden sich dann weitere Unterarrays, die völlig unterschiedlich aufgebaut sein können und wiederum Arrays enthalten können. In jedem Fall gibt es eine Hierarchie der Dimensionen.
                      Ein mehrdimensionales Array hat sozusagen eine Grundordnung. Ein zweidimensionales Array ist rechteckig, ein dreidimensionales sozusagen quaderförmig. Und man kann alle Dimensionen gleichwertig ansprechen, weil es kein Baum ist. Bei mehrdimensionalen Feldern hat man keine Arrays in Arrays, sondern nur Elemente.

                      Wenn man zum Beispiel ein Schachbrett programmiert, dann sind Reihen und Spalten vom Prinzip her völlig gleichwertig. Es wäre dann zum Beispiel schön, wenn auch die Abbildung im Programm gleichartig wäre, weil dann auch analoge Methoden programmiert werden könnten. Bei einem verzweigten Array sind aber die Reihen Arrays innerhalb des Oberarrays. Und für die Linien gibt es keine eigenen Arrays, sondern sie setzten sich aus Elementen der Reihen-Arrays zusammen. Dadurch muss man Reihen und Spalten im Programm unterschiedlich behandeln. Bei mehrdimensionalen Arrays kann man sie gleich behandeln und Methoden für beides anwenden.

                      Natürlich kann man mit verzweigten Arrays alles machen, in vielen Fällen sind mehrdimensionale Arrays aber einfach besser händelbar. (In vielen anderen Fällen sind aber verzweigte Arrays sehr nützlich, ich sage ja nicht, dass die schlecht wären.)

                      Als php-Programmierer kennt man die vielleicht nicht, deswegen fehlen sie euch vielleicht auch nicht, sie sind aber doch recht praktisch.

                      Kommentar


                      • #12
                        PHP hatte bis vor kurzem nicht mal "echte" Arrays. array() ist in PHP weit mehr als ein Array. Daher kann es auf Basis dessen auch keine x*y-Arrays geben, weil man immer dynamisch noch ein Element hinzufügen kann.
                        Wer Lust hat kann ja sich mit SplFixedArray ja was lustiges zusammenbauen um mehrdimensionale Arrays wie in anderen Sprachen zu haben.

                        Kommentar


                        • #13
                          ... aha, schneller sind mehrdimensionale Arrays also auch!!

                          Wenn ich mal viel Zeit habe schaue ich mir das mal an. Ist auf jeden Fall interessant, dass es das gibt.

                          Kommentar


                          • #14
                            Danke für die vielen Antworten! Gibts also tatsächlich nicht. Schade, kann man aber wohl nicht ändern.

                            Kommentar


                            • #15
                              Kann man, wurde auch n Link zu gepostet.
                              [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                              [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                              Kommentar

                              Lädt...
                              X