Mehrdimensionales Array / array_push

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

  • Mehrdimensionales Array / array_push

    Hie Leute,
    bin Neuling in der Php Welt und versuche gerade über eine Funktion die übergebenden Variablen in ein mehrdimensionales Array abzulegen.

    Vom Ablauf scheint alles zu funktionieren, bis auf die Zuweisung!

    Hat einer ne Idee?
    hab folgende Fehlermeldung:

    Warning: array_push() [function.array-push]: First argument should be an array in E:\online\test.php on line 13


    Hier das Script:
    was läuft hier nur verkehrt....

    PHP-Code:
    <?PHP

    function beispiel() {
        global 
    $buffer,$args,$zaehler;$test_array;

        
    $test_array= array();
        
    $args func_get_args();
        if(!
    $zaehler){$zaehler=0;}
        print (
    'Forschleife_Zaehler:'.$zaehler.'<br>');
        
    $list=0;
        while(
    count($args)>0){
            
    $buffer=array_shift($args);
            
    array_push($test_array[$zaehler][$list],$buffer);
            
    $list++;
        }
        
    $zaehler++;
    }

    beispiel("das""ist""ein""test");
    beispiel("mit""einem""ende");
    print (
    'Größe des Arrays:'.sizeof($args).'<br>');
    print (
    'Wert des buffers:'.$buffer.'<br>');
    print (
    'zaehler:'.$zaehler.'<br>');
    print 
    $test_array;
    ?>

  • #2
    kann es sein, dass $test_array nicht global deklariert wird (wg. des semikolons)?

    ansonsten kann man das "push"en auch mit dem konstrukt realisieren:
    PHP-Code:
    $a = array();
    $a[] = 'foo';
    $a[] = 'bar'

    Kommentar


    • #3
      ach diese kleinen fehler
      ok das semikolon habe ich durch ein komma ersetzt und jetzt schreibt er mir zumindestens schonmal array hin.

      habe das scribt wie folgt geändert aber immer noch ohne werte

      PHP-Code:
      <?PHP

      function beispiel() {
          global 
      $buffer,$args,$zaehler,$test_array;

          
      $test_array= array();
          
      $args func_get_args();
          if(!
      $zaehler){$zaehler=0;}
          print (
      'Forschleife_Zaehler:'.$zaehler.'<br>');
          
      $list=0;
          while(
      count($args)>0){
              
      $buffer=array_shift($args);
              
      $test_array[$zaehler][$list]=$buffer;
              
      $list++;
          }
          
      $zaehler++;
      }

      beispiel("das""ist""ein""test");
      beispiel("mit""einem""ende");
      print (
      'Größe des Arrays:'.sizeof($args).'<br>');
      print (
      'Wert des buffers:'.$buffer.'<br>');
      print (
      'zaehler:'.$zaehler.'<br>');
      print 
      $test_array[0][1];
      ?>
      oder brauche ich die $list variable gar nicht und kann einfach

      $test_array[$zaehler][]=$buffer;

      schreiben?

      Kommentar


      • #4
        versuchs.

        Kommentar


        • #5
          nee ist das gleich in grün

          son schiit ...

          werd hier langsam fuchtelig

          Kommentar


          • #6
            AAHA

            ein bisschen was hat siche getan!
            $test_array[1][]... ist vorhanden aber nicht $test_array[0]

            kann ja fast nur am $zaehler liegen ?????

            Kommentar


            • #7
              nutze print_r() zur ausgabe von arrays.

              Kommentar


              • #8
                hab print_r genommen

                Ok der winzig winzig kleine letzte Fehler ist, das nur der letzte Funktionsaufruf gültig ist.

                Alle vorherigen Felder sind zwar vorhanden aber leer

                Kommentar


                • #9
                  klar, du löschst das array ja auch bei jedem funktionsaufruf.

                  Kommentar


                  • #10
                    stimmt ja!!

                    $test_array= array(); enfernt

                    und alles läuft super

                    ey danke, wärst du in der nähe schmiß ich einen kasten

                    Kommentar

                    Lädt...
                    X