Mehrdimensionales Array / array_push

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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'

    Comment


    • #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?

      Comment


      • #4
        versuchs.

        Comment


        • #5
          nee ist das gleich in grün

          son schiit ...

          werd hier langsam fuchtelig

          Comment


          • #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 ?????

            Comment


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

              Comment


              • #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

                Comment


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

                  Comment


                  • #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

                    Comment

                    Working...
                    X