Zahlen aus Datei einlesen und Array zu ordnen

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

  • Zahlen aus Datei einlesen und Array zu ordnen

    Hi!

    Ich bin neu hier und hab gleich ne Frage, ich hoffe mir nimmt man das nicht übel. Bin nun mal Anfänger auf dem Gebiet.

    Ich habe folgende Daten-Datei:
    Code:
    i,t,f
    0,2,1
    1,4,2
    2,6,6
    3,8,2
    4,10,5
    5,12,1
    Dabei ist die 1. Stelle quasi eine Art Laufzahl und wird für spätere Berechnungen nicht benötigt.

    Die möchte ich nun einlesen und wieder ausgeben, dass hab ich nun so gelöst:
    PHP-Code:
    $handle fopen ("tabelle.txt","r");     // Öffnet die Daten-Datei

    while ( $data fgetcsv ($handle",")) { // Lädt die Zahlen getrennt durch , in ein Array $data
                                              // solange Zeilen vorhanden sind.

        
    for ($i=0$i 3$i++) {             // Gibt immer die drei paare von Zahlen aus 
            
    echo $data[$i] . " " ;             // und geht dann zur nächsten Zeile
        
    }
        echo 
    "<br>\n" ;                        


    Jetzt will ich die Daten aber nicht nur einfach wieder ausgeben, sondern vorher noch mit den einzelnen Werten rechnen.

    Wie muss ich das jetzt organisieren, dass den Wert 1. Zeile, 2. Stelle auswählen kann oder halt den Wert 3. Zeile, 3. Stelle usw. ?

    Das ganze soll dann später in sowas münden:
    Code:
    6   15  55   225
    15  55  225  979 
    55  225 979  4425
    225 979 4425 20515
    Also eine 4x4 Matrix. Die 6 wird dann so errechnet: Summe aus ti^0*ti^0; die 15 dann ti^0 * ti^1, 55 = ti^0 * ti^2 usw.
    Beispiel für 15:
    Code:
    15 = 0^0 * 0^1 + 1^0 * 1^1 + 2^0 * 2^1 + 3^0 * 3^1 + 4^0 * 4^1 + 5^0 * 5^1
    Verständlich was ich meine?

    Gruß
    Crizzo

  • #2
    Zitat von Crizzo Beitrag anzeigen
    Wie muss ich das jetzt organisieren, dass den Wert 1. Zeile, 2. Stelle auswählen kann oder halt den Wert 3. Zeile, 3. Stelle usw. ?
    Pack' die Daten in ein zweidimensionales Array - dann kannst du anschließend mit entsprechenden Indices drauf zugreifen.
    PHP-Code:
    $dataArray = array();
    while ( 
    $data fgetcsv ($handle",")) {
      
    $dataArray[] = $data;
    }
    echo 
    '<pre>'print_r($dataArray); echo '</pre>'// nur zur Kontrolle, damit dir die Struktur des Arrays klar wird 
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wenn du die Keys i,t,f beibehalten willst, solltest du das erste Ergebnis des fgetcsv als Quelle für array_combine bei nachfolgenden fgetcsv benutzen.

      Und Arrays behandelt man eben so, wie man Arrays in PHP behandelt.
      Und wie das geht, kannst du hier nachlesen: PHP: Arrays - Manual
      Wir werden alle sterben

      Kommentar


      • #4
        @combie: Die Keys hab ich nur dazu gepackt, dass ihr meine Erklärung am Ende des Beitrags zur Rechnung nachvollziehen könnt.

        Zitat von wahsaga Beitrag anzeigen
        Pack' die Daten in ein zweidimensionales Array - dann kannst du anschließend mit entsprechenden Indices drauf zugreifen.
        PHP-Code:
        $dataArray = array();
        while ( 
        $data fgetcsv ($handle",")) {
          
        $dataArray[] = $data;
        }
        echo 
        '<pre>'print_r($dataArray); echo '</pre>'// nur zur Kontrolle, damit dir die Struktur des Arrays klar wird 
        Dann komm ich auf dies:
        Code:
        Array
        (
            [0] => Array
                (
                    [0] => 0
                    [1] => 2
                    [2] => 1
                )
        
            [1] => Array
                (
                    [0] => 1
                    [1] => 4
                    [2] => 2
                )
        
            [2] => Array
                (
                    [0] => 2
                    [1] => 6
                    [2] => 6
                )
        
            [3] => Array
                (
                    [0] => 3
                    [1] => 8
                    [2] => 2
                )
        
            [4] => Array
                (
                    [0] => 4
                    [1] => 10
                    [2] => 5
                )
        
            [5] => Array
                (
                    [0] => 5
                    [1] => 12
                    [2] => 1
                )
        
        )
        Dann muss doch z.B. mit
        PHP-Code:
        $dataArray[5][0
        auf die 5 im letzten Array zugreifen, richtig?
        Aber dann wir meine 4x4 Matrix ganz schön unübersichtlich, wenn ich das dann also mit diesen Array-Variablen einzelnen ausrechnen möchte.
        Zuletzt geändert von Crizzo; 14.10.2010, 17:26.

        Kommentar


        • #5
          Zitat von Crizzo Beitrag anzeigen
          Aber dann wir meine 4x4 Matrix ganz schön unübersichtlich, wenn ich das dann also mit diesen Array-Variablen einzelnen ausrechnen möchte.
          Das ist zumindest zunächst mal genau das, wonach du gefragt hast - wie du das so machen kannst, dass du mit Zeilen- und Spaltenindex gezielt zugreifen kannst.

          Du deine „Matrix“ musst du ja nicht Wert für Wert einzeln erstellen, sondern kannst auch dafür Schleifen nutzen, wenn du eine sinnvolle Bildungsvorschrift für die Werte formulierst.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ich würde das jetzt mit einer for oder while Schleife machen. Aber was meinst du mit
            Zitat von wahsaga Beitrag anzeigen
            wenn du eine sinnvolle Bildungsvorschrift für die Werte formulierst.
            ?

            Kommentar


            • #7
              Die Berechnung, die du ausführen willst, um die Werte in deiner Matrix zu erhalten - so formuliert, dass sie in Schleifen nutzbar wird.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                dass sie in Schleifen nutzbar wird.
                Oder alternativ rekursiv.
                Wir werden alle sterben

                Kommentar

                Lädt...
                X