Arraynamen "array['etc']" deklarieren

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

  • Arraynamen "array['etc']" deklarieren

    Hi,
    kurze Frage.

    Kann ich eine Array so deklarieren, dass ich jede Unterordnung nicht gesondert deklarieren muss?
    Sprich:
    PHP-Code:
    $arr = array();

    // $arr ist jetzt eine array
    // $arr['irgendwas'] ist jedoch keine array und müsste gesondert deklariert werden 
    Gibt es da eine Möglichkeit?
    Danke

  • #2
    ????
    Du wirst dem Array schon seinen Inhalt mitteilen müssen.
    Telepathie können Arrays bisher noch nicht.
    Wir werden alle sterben

    Kommentar


    • #3
      Zitat von combie Beitrag anzeigen
      ????
      Du wirst dem Array schon seinen Inhalt mitteilen müssen.
      Telepathie können Arrays bisher noch nicht.
      Wenn ich $arr als Array deklariere,
      so dachte ich, ist $arr auch eine Array, egal welche individuellen bezeichner
      ich ihr gebe.

      Bsp.:
      PHP-Code:
      $arr = array();

      array_push($arr['etc'], array('irgendwas')); 
      $arr ist als Array deklariert, warum bekommt man dann die Meldung
      das $arr['etc'] keine Array sei.

      Kommentar


      • #4
        ich vermute, er ist von den javascript-arrays geschädigt. in php reicht schon ein
        PHP-Code:
        $arr['irgendwas'] = array(); 
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Zitat von Kropff Beitrag anzeigen
          ich vermute, er ist von den javascript-arrays geschädigt. in php reicht schon ein
          PHP-Code:
          $arr['irgendwas'] = array(); 
          peter
          Ja, aber ich möchte nicht jede einzelne individuell bezeichnete erweiterung von $arr neu definieren müssen.

          Gibt es nicht eine Möglichkeit, alles unterbezeichnungen als Array durchgehen zu lassen?

          $arr ist eine Array
          Also muss $arr['irgendwas'] und $arr['irgendwasandere'] usw. doch auch als array durchgehen.
          Alles einzeln nochmal zu deklarieren ist ja mühselig

          Kommentar


          • #6
            Zitat von phpMorpheus2 Beitrag anzeigen
            Ja, aber ich möchte nicht jede einzelne individuell bezeichnete erweiterung von $arr neu definieren müssen.

            Gibt es nicht eine Möglichkeit, alles unterbezeichnungen als Array durchgehen zu lassen?

            $arr ist eine Array
            Also muss $arr['irgendwas'] und $arr['irgendwasandere'] usw. doch auch als array durchgehen.
            Alles einzeln nochmal zu deklarieren ist ja mühselig
            PHP-Code:
            $arr array_fill_keys(array('irgendwas''irgendwasandere'), array());

            print_r($arr); 
            Code:
            Array
            (
                [irgendwas] => Array
                    (
                    )
            
                [irgendwasandere] => Array
                    (
                    )
            
            )

            Kommentar


            • #7
              Jetzt sage doch mal welche Probleme dich wirklich plagen...

              PHP-Code:
              $arr = array(); 
              $arr['etc']['bli']['bla']['blub']= 'trööt'
              Wir werden alle sterben

              Kommentar


              • #8
                das musst du in php nicht. du kannst sogar sowas machen, ohne dass vorher irgend etwas passiert ist:
                PHP-Code:
                $arr['bla']['blubb'][] = 'blubber'
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Zitat von Kropff Beitrag anzeigen
                  das musst du in php nicht. du kannst sogar sowas machen, ohne dass vorher irgend etwas passiert ist:
                  PHP-Code:
                  $arr['bla']['blubb'][] = 'blubber'
                  peter
                  Können schon, aber es ist unsauber. Es wär nicht das erste mal, dass dadurch jemand unabsichtlich an einem bereits vorhandenen Array neue Werte anhängt.

                  Also am besten zuerst ein leeres Array mit $var = array() definieren, damit du ganz sicher sein kannst, dass das Array auch wirklich leer ist.

                  Kommentar


                  • #10
                    PHP-Code:
                    $arr = array();

                    array_push($arr, array('etc')); // ohne probleme
                    array_push($arr['php-resource'], array('etc')); //Fehler. Erstes Argu. ist ja kein Array!!

                    //Wenn ich nun etweige spezifisch definierten $arr['spezifisch']  benutze,
                    //muss ich vorher alles deklarieren. Das finde ich umständlich.
                    //wenn ich $arr einmal als Array() deklariere, so müssten doch alle
                    //unterebenen von $arr['unterebenen'] auch Arrays sein, sind sie aber nicht.

                    //also bleibt mir nurnoch
                    $arr['etc']['etc2']['usw'] = array();
                    //übrig, richtig? 

                    Kommentar


                    • #11
                      Zitat von h3ll Beitrag anzeigen
                      Können schon, aber es ist unsauber. Es wär nicht das erste mal, dass dadurch jemand unabsichtlich an einem bereits vorhandenen Array neue Werte anhängt.
                      darauf muss man natürlich achten. ich wollte ihm vor allem den unterschied zu javascript zeigen.

                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        Die wichtigsten Eigenschaften eines Programmierers:
                        1. Fleiß
                        2. Disziplin
                        3. Abstraktionsvermögen
                        (Reihenfolge egal)

                        Faulheit kann er nur ausleben, wenn das Problem hinreichend abstrahiert wurde und eine wiederverwendbare Lösung gefunden wurde.
                        Wir werden alle sterben

                        Kommentar


                        • #13
                          Wenn man auf ein solches Array-Element zugreift wirft PHP ein Notice hätte ich mal so gesagt. Und das sollte ordentlicher Code nicht tun.

                          Und wenn du solche Probleme mit dem Code hast, solltest du vielleicht deine Struktur überdenken.

                          Kommentar


                          • #14
                            Zitat von viego Beitrag anzeigen
                            Wenn man auf ein solches Array-Element zugreift wirft PHP ein Notice hätte ich mal so gesagt. Und das sollte ordentlicher Code nicht tun.

                            Und wenn du solche Probleme mit dem Code hast, solltest du vielleicht deine Struktur überdenken.
                            Mein Code wirft sicherlich kein notice aus.
                            Soweit bin ich dann doch schon gekommen mit meinem Wissen

                            Ich suche nur sehr oft nach verbesserungsmöglichkeiten um alles komfortabler
                            und sauberer programmieren zu können.
                            Ich kann ein sehr schönen Algo haben, dennoch versuche ich immer wieder
                            etwas zu verbessern.

                            Sei es Performance oder allgemeine Codeansicht.
                            Das geht wohl jedem Coder so.

                            Und die Frage die ich hier gestellt habe, schwirrte mir im Kopf herum.
                            Getestet, hat net funktioinert, kopf zerbrochen und nun gefragt

                            Danke jungs

                            Kommentar


                            • #15
                              Zitat von phpMorpheus2 Beitrag anzeigen
                              PHP-Code:
                              $arr = array();

                              array_push($arr['etc'], array('irgendwas')); 
                              $arr ist als Array deklariert, warum bekommt man dann die Meldung
                              das $arr['etc'] keine Array sei.
                              Weil $arr['etc'] kein Array ist und die Funktion array_push() eben so implementiert ist, dass es dann eine Notice gibt. Steht doch im Manual.

                              Kommentar

                              Lädt...
                              X