phil: array...

Hallo,

Ich habe ein Problem kann mir einer sagen warum folgendes script net geht?

<?php

$open = fopen("text.txt","r");
 $idx = 0;
while (!feof ($open))
{
 $zeilen = fgets($open, 4096);
 $stuecke = split(";",$zeilen);

array[$idx] = $stuecke;  <- hier ist mein Prob. ich will die arrays der einzelnen zeilen in ein grosses packen aber es geht nicht...parse error hab aber schon alles geändert mit " usw... weiss einer von euch was falsch ist?
 $idx++;
}

fclose($open);

?>

  1. Hi!

    Ich habe ein Problem kann mir einer sagen warum folgendes script net geht?

    <?php

    $open = fopen("text.txt","r");
    $idx = 0;
    while (!feof ($open))
    {
    $zeilen = fgets($open, 4096);
    $stuecke = split(";",$zeilen);

    array[$idx] = $stuecke;

    ^^^^^

    Wäre nicht ununteressant wo der Fehler auftritt, denn das sagt Dir der Parse error. Ich vermute einfach mnl hier, denn was machst Du da? array ist eine Funktion, keine Variable. Wenn Du die "Stücke" in einen array schreiebn willstm, mußt Du erstmal eine Variable für den Array haben, sagen wir mal $array_mit_den_stuecken. In den kannst Du jetzt die Daten einfü+gen, etwa wie

    $array_mit_den_stuecken[$idx] = $stuecke;

    wobei Du auf $idx ganz verzichten kannst, es reicht

    $array_mit_den_stuecken[] = $stuecke;

    das ganze könnte man übrigens auch so schreiben:

    <?php
    foreach (file("text.txt") as $zeile){
        $array_mit_den_stuecken[] = explode(";",trim($zeile));
    }
    ?>

    Grüße
    Andreas

    1. Hi!

      Ich habe ein Problem kann mir einer sagen warum folgendes script net geht?

      <?php

      $open = fopen("text.txt","r");
      $idx = 0;
      while (!feof ($open))
      {
      $zeilen = fgets($open, 4096);
      $stuecke = split(";",$zeilen);

      array[$idx] = $stuecke;
          ^^^^^

      Wäre nicht ununteressant wo der Fehler auftritt, denn das sagt Dir der Parse error. Ich vermute einfach mnl hier, denn was machst Du da? array ist eine Funktion, keine Variable. Wenn Du die "Stücke" in einen array schreiebn willstm, mußt Du erstmal eine Variable für den Array haben, sagen wir mal $array_mit_den_stuecken. In den kannst Du jetzt die Daten einfü+gen, etwa wie

      $array_mit_den_stuecken[$idx] = $stuecke;

      wobei Du auf $idx ganz verzichten kannst, es reicht

      $array_mit_den_stuecken[] = $stuecke;

      das ganze könnte man übrigens auch so schreiben:

      <?php
      foreach (file("text.txt") as $zeile){
          $array_mit_den_stuecken[] = explode(";",trim($zeile));
      }
      ?>

      Grüße
      Andreas

      hi,
      also ich weiss nicht...ich komm nicht drauf wie es geht ich verstehe was du meinst, aber ich will ganz einfach die gesplitteten arrays in ein grosses array packen in dem ich nachher nach den "gesplitteten" arrays suchen (zugreifen) kann! in php kann man doch sowas machen...nur so wie es du mir erklärt hast scheint es nich zu klappen :( oder ich mach irgend was falsch!
      wenn ich es so wie du mach und das array ausgeben will kommt nur ArrayArrayArray...
      vielleicht weisst du mehr...
      gruss phil

      1. Hi!

        also ich weiss nicht...ich komm nicht drauf wie es geht ich verstehe was du meinst, aber ich will ganz einfach die gesplitteten arrays in ein grosses array packen in dem ich nachher nach den "gesplitteten" arrays suchen (zugreifen) kann! in php kann man doch sowas machen...nur so wie es du mir erklärt hast scheint es nich zu klappen :( oder ich mach irgend was falsch!
        wenn ich es so wie du mach und das array ausgeben will kommt nur ArrayArrayArray...

        So wie ich es mache (ich benenne jetzt der Einfachheit mal $array_mit_den_stuecken in $arr um), sieht das folgendermaßen aus:

        foreach (file("text.txt") as $zeile){
            $arr[] = explode(";",trim($zeile));
        }

        file() liest die Datei Zeilenweise in einen Array
        in der foreach-schleife teile ich jede $zeile mit explode() bei ";", mit trim() schneide ich die Umbrüche am Ende der Zeile ab
        explode() liefert einen Array zurück den ich wiederum an den Array $arr anhänge.

        eine sehr interessante Funktion wäre auch print_r(), also gebe am Ende einfach mal zum Spaß

        print_r($arr);

        aus.
        Wenn Du wissen willst wie man auf mehrdimensionale Arrays zugreift, das findest Du hier: http://www.php-faq.de/q-arrays-mehrdimensional.html

        sonst findest Du alles wissenswerte über Arrays hier: http://www.php3.de/manual/de/language.types.array.php

        Grüße
        Andreas

        1. hi,

          ah ok jetzt hab ich das ganze verstanden vielen Dank!!!

          gruß Phil!!

  2. Huhu

    array[$idx] = $stuecke;  <- hier ist mein Prob.

    array ist ein reserviertes Schlüsselwort.

    Ein Variablenname $array funktioniert zwar in PHP (in vielen anderen Sprachen wäre das verboten), ist aber wenig sinnvoll, da es leicht zu Missverständnissen führt (s.o.).

    Besser z.B. $arr für temporäre Arrays, oder auch $stack,$haystack.
    Das wären zumindest meine "favourites".

    Viele Grüße

    lulu

  3. Hallo

    Ich habe ein Problem kann mir einer sagen warum folgendes script net geht?

    <?php

    $open = fopen("text.txt","r");
    $idx = 0;
    while (!feof ($open))
    {
    $zeilen = fgets($open, 4096);
    $stuecke = split(";",$zeilen);

    array[$idx] = $stuecke;  <- hier ist mein Prob. ich will die arrays der einzelnen zeilen in ein grosses packen aber es geht nicht...parse error hab aber schon alles geändert mit " usw... weiss einer von euch was falsch ist?
    $idx++;
    }

    array[$idx] = $stuecke;

    ^^^^^^^^^^^
    Du fügst das Array $stuecke einem Befehl (array) hinzu (geht natürlich nicht).
    Selbst mit $array[$idx] bekommst du den Inhalt jedoch nicht sortiert.
    Du packst nicht mehrere Array in ein "Über"array sondern nur die
    Inhalte der kleinen Arrays in ein Großes.

    Gibt es überhaupt Arrays in Arrays?

    Tschö, Auge

    PS: Guck dir mal
    http://www.selfphp.info/funktionsreferenz/dateisystem_funktionen/file.php
    an, Da hast Du sofort ein Array mit je einer Zeile als Element.

    1. Hi!

      array[$idx] = $stuecke;
          ^^^^^^^^^^^
      Du fügst das Array $stuecke einem Befehl (array) hinzu (geht natürlich nicht).
      Selbst mit $array[$idx] bekommst du den Inhalt jedoch nicht sortiert.

      sicher geht das, er erhöht ja jedesmal $idx, wobei das PHP mit $array[] automatisch macht.

      Du packst nicht mehrere Array in ein "Über"array sondern nur die
      Inhalte der kleinen Arrays in ein Großes.

      doch er erstellt einen mehrdimensionalen Array.

      Gibt es überhaupt Arrays in Arrays?

      ja:
      http://www.php-faq.de/q-arrays-mehrdimensional.html
      http://www.php3.de/manual/de/ref.array.php
      http://www.php3.de/manual/de/language.types.array.php

      Grüße
      Andreas

      1. Hallo

        Du packst nicht mehrere Array in ein "Über"array sondern nur die
        Inhalte der kleinen Arrays in ein Großes.
        doch er erstellt einen mehrdimensionalen Array.

        Gibt es überhaupt Arrays in Arrays?
        ja:
        http://www.php-faq.de/q-arrays-mehrdimensional.html
        http://www.php3.de/manual/de/ref.array.php
        http://www.php3.de/manual/de/language.types.array.php

        Ja ja, mehrdimensional, kam mir gleich bekannt vor, was er vorhat. ;-)

        Danke für die Links, hab's bisher nicht gebraucht, mich also auch
        nicht großartig damit beschäftigt. Nur mal überflogen, in einem Buch,
        das daraus eine sprachlich akademische Herausforderung machte. ;-)

        Die vorgestellten Beispiele sind da logischer.

        Tschö, Auge

        1. Hallo!

          Danke für die Links, hab's bisher nicht gebraucht, mich also auch
          nicht großartig damit beschäftigt. Nur mal überflogen, in einem Buch,
          das daraus eine sprachlich akademische Herausforderung machte. ;-)

          Die vorgestellten Beispiele sind da logischer.

          Beispiele sind für mich zumindest immer das einfachste! Man muß einmal wissen wo Beispiele stehen! Vor allem im Manual, den FAQ und den Kommentaren des Manuals, da steht wirklich fast alles, es ist sehr seltwen das Du mal ein Problem hast, was vorher noch niemand vor einem selbst hatte.
          Daher stehe ich auch nicht auf Bücher, am besten lerne ich wenn ich mir das Beispiel kurz irgendwoe "klaue" und selbst ausprobiere, verändere und für später speichere. Bücher müssen das ganez halt Theoretisch machen, das liegt mir nicht. Und gerade zu PHP, MySQL, HTML, Linux... findet man ja wirklich _alles_ irgndwo im Internet.

          Viele Grüße
          Andreas

          1. <recycle>Hallo</recycle> ;-)

            Beispiele sind für mich zumindest immer das einfachste! Man muß einmal wissen wo Beispiele stehen! Vor allem im Manual, den FAQ und den Kommentaren des Manuals, da steht wirklich fast alles, es ist sehr seltwen das Du mal ein Problem hast, was vorher noch niemand vor einem selbst hatte.
            Daher stehe ich auch nicht auf Bücher, am besten lerne ich wenn ich mir das Beispiel kurz irgendwoe "klaue" und selbst ausprobiere, verändere und für später speichere.

            Kenn' ich doch irgendwoher?! *hehe*
            Wenn ich was neues programmieren soll (bin ja noch in der Lernphase),
            guck ich mir auch erstmal einige Skripte und Codebeispiele an, um
            verschiedene Herangehensweisen kennenzulernen und mich zu orientieren.

            Tschö, Auge