Ankündigung

Einklappen
Keine Ankündigung bisher.

Array in function füllen?

Einklappen

Neue Werbung 2019

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

  • Array in function füllen?

    Hey,
    jetzt will ich in diesem Forum nach langem Gastlesen auch mal endlich meinen ersten Beitrag hinterlassen.
    Und zwar möchte ich eine function erstellen in der ein Array gefüllt wird.
    Hier mal ein stark vereinfachtes Beispiel.
    PHP-Code:
    function array_fuellen($name){
        
    $save_name[]=$name;
        
    print_r($save_name);
    }

    array_fuellen('heinz');
    array_fuellen('horst');
    array_fuellen('heiner'); 
    Ausgabe
    Array ( [0] => heinz ) Array ( [0] => horst ) Array ( [0] => heiner )
    Das Array scheint also immer wieder von vorne gefüllt zu werden.
    Wie stelle ich das an, dass ich da als resultat
    Array ( [0] => heinz [1] => horst [0] => heiner)
    erhalte?

    Vieelen Dank!
    Chris

  • #2
    Zitat von _chris Beitrag anzeigen
    Das Array scheint also immer wieder von vorne gefüllt zu werden.
    Natürlich - $save_name ist ja schließlich eine lokale Variable innerhalb der Funktion, und auch nur dort verfügbar.

    Wie stelle ich das an, dass ich da als resultat [...] erhalte?
    Globale Variablen ist ein Stichwort, dass ich hier nur nenne, damit's kein anderer tut
    Nein, die sind nicht der Weg, den man gehen sollte.
    Du könntest dein Array, außerhalb der Funktion deklariert, per Referenz an die Funktion übergeben, und dann einen neuen Eintrag hinzufügen.

    Ob du für das ganze überhaupt eine Funktion brauchst, wäre noch zu überlegen.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Es gibt also tatsächlich noch andere leute die um viertel nach 3 noch nicht ans Schlafen gehen denken..
      Vielen Dank für deine Antowort!
      Ich hatte nur gedacht, dass es vllt. tatsächlich eine Möglichkeit gibt die Variable global nutzen zu können.
      Aber die Sache mit der Übergabe ist ein guter Ansatz und ich werds gleich mal probieren.
      Danke und gute Nacht =)

      Kommentar


      • #4
        Ich hatte nur gedacht, dass es vllt. tatsächlich eine Möglichkeit gibt die Variable global nutzen zu können.
        Globale Variablen ist ein Stichwort, dass ich hier nur nenne, damit's kein anderer tut
        Nein, die sind nicht der Weg, den man gehen sollte.
        Natürlich gibt es die -> [MAN]global[/MAN]
        Nur nicht empfehlenswert.

        Kommentar


        • #5
          Um Daten an ein array anzuhängen gibt es schon eine Funktion:
          PHP: array_push - Manual
          Signatur:
          PHP-Code:
          $s '0048656c6c6f20576f726c64';
          while(
          $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

          Kommentar


          • #6
            Moin!

            Was auch funktioniert, ist wenn du das Array in der Funktion als statisch deklarierst:
            PHP-Code:
            function array_fuellen($name){
                static 
            $save_name = array();
                
            $save_name[]=$name;
                
            print_r($save_name);

            Dadurch gehen die Werte beim Verlassen der Funktion nicht verloren.

            Gruß

            Kommentar


            • #7
              *bäh*

              Wieso probiert eigentlich niemand die von ChrisB vorgeschlagene Lösung aus?

              PHP-Code:
              function array_fuellen(array &$array$name) {
                
              $array[] = $name;
              }

              $array = array();

              array_fuellen($array'foo');
              array_fuellen($array'bar');

              echo 
              '<pre>'print_r($array), '</pre>'
              Wozu das ganze gut sein soll, verstehe ich aber auch nicht! Dazu gibt es
              Code:
              $array[] = 'value';
              oder die in Post #5 genannte Funktion. Wobei diese auch schon wieder übertrieben ist.
              [URL]http://hallophp.de[/URL]

              Kommentar

              Lädt...
              X