Arraynamen "array['etc']" deklarieren

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

  • onemorenerd
    antwortet
    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.

    Einen Kommentar schreiben:


  • phpMorpheus2
    antwortet
    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

    Einen Kommentar schreiben:


  • viego
    antwortet
    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.

    Einen Kommentar schreiben:


  • combie
    antwortet
    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.

    Einen Kommentar schreiben:


  • Kropff
    antwortet
    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

    Einen Kommentar schreiben:


  • phpMorpheus2
    antwortet
    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? 

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    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.

    Einen Kommentar schreiben:


  • Kropff
    antwortet
    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

    Einen Kommentar schreiben:


  • combie
    antwortet
    Jetzt sage doch mal welche Probleme dich wirklich plagen...

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

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    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
            (
            )
    
    )

    Einen Kommentar schreiben:


  • phpMorpheus2
    antwortet
    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

    Einen Kommentar schreiben:


  • Kropff
    antwortet
    ich vermute, er ist von den javascript-arrays geschädigt. in php reicht schon ein
    PHP-Code:
    $arr['irgendwas'] = array(); 
    peter

    Einen Kommentar schreiben:


  • phpMorpheus2
    antwortet
    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.

    Einen Kommentar schreiben:


  • combie
    antwortet
    ????
    Du wirst dem Array schon seinen Inhalt mitteilen müssen.
    Telepathie können Arrays bisher noch nicht.

    Einen Kommentar schreiben:


  • phpMorpheus2
    hat ein Thema erstellt Arraynamen "array['etc']" deklarieren.

    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
Lädt...
X