Ankündigung

Einklappen
Keine Ankündigung bisher.

in assoz. Array schreiben

Einklappen

Neue Werbung 2019

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

  • in assoz. Array schreiben

    Hallo erstmal!

    Anfängerfrage am Rande:

    Wie bekomme ich es hin, in einen assoziativen Array zu schreiben? Sprich: Wie schaffe ich es, im nachfolgenden Code, einen bestimmten Wert zu überschreiben?

    Zitat von Code
    $database = file ( "database.txt");

    foreach ( $database as $key => $value)
    {
    $buf = split ( "%",$value);
    print "$buf[0], $buf[1], $buf[2], $buf[3]";
    }
    Ich möchte nur $buf[3] (Wert im Moment 0) um 3 erhöhen und diese 3 dann in der Datei "database.txt" vermerken.

    Ich hoffe, ich hab mich annähernd verständlich ausgedrückt!

  • #2
    Kann mir niemand helfen?

    Kommentar


    • #3
      Tag,

      was ist daran assoziativ?
      Das Array ist normal durchindexiert.

      Ich bin mir nicht sicher, ob Du wirklich das tun willst, was Du da fragst, aber ich probier es mal:

      Nachdem Du die Daten mit file ausgelesen hast, legst Du ein neues Handle zum Schreiben auf Deine database.txt an.
      Anschließend splittest Du wie gehabt Deine Zeilen und erhöhst jeweils den gewünschten Wert im Array (z.B. $buf[3]+=3);
      Dann speicherst Du die Zeile ab, indem Du Die Zeile wieder mit % implodest und mittels fputs in der Datei ablegst.
      Abschließend schließt Du die Datei. Das ist der einfachste Weg.

      Aber wie gesagt: So erhöhst Du den $buf[3] in _jeder_ Zeile!

      Kommentar


      • #4
        Danke erstmal, dass sich jemand bemüht hat!
        Ich möchte aber nicht jede Zeile um 3 erhöhen, sondern nur eine bestimmte! Ist das irgendwie möglich?

        Kommentar


        • #5
          Ja,

          Wenn Du nun Beispielsweise Zeile 5 editieren möchtest, mußt Du einfach statt Deiner foreach-Schleife $database[4] exploden.

          Also mal in Schritten:
          1. Datei einlesen
          2. gewünschte Zeile bearbeiten
          2.1. Zeile per Index auswählen
          2.2. Zeile Exploden
          2.3. Wert bearbeiten
          2.4. Zeile imploden
          3. $database imploden
          4. Datei mit $database neu beschreiben

          Kommentar


          • #6
            Gut, das hab ich soweit verstanden. Was bedeutet denn per Index auswählen?

            Kommentar


            • #7
              PHP-Code:
              <?php
              $database 
              file "database.txt"); 

              foreach ( 
              $database as $key => $value

              $buf split "%",$value); 
              print 
              "$buf[0]$buf[1]$buf[2]$buf[3]"
              }
              ?>
              Um es neu zu schreiben oder halt zu erhöhen dann einfach:

              PHP-Code:
              <?php
              $buf
              [3] += 3;
              ?>

              Kommentar


              • #8
                PHP-Code:
                <?php
                $buf
                [3] += 3
                ?>
                Das klappt dann zwar zur Ausgabe, aber um den um 3 erhöhten Wert auch in der Textdatei abzuspeichern, muss man es anders machen... Und das wie ist die Frage!

                Kommentar

                Lädt...
                X