Zahlen aus Datei einlesen und Array zu ordnen

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

  • 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
    Originally posted by Crizzo View Post
    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.

    Comment


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

      Comment


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

        Originally posted by wahsaga View Post
        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.
        Last edited by Crizzo; 14-10-2010, 16:26.

        Comment


        • #5
          Originally posted by Crizzo View Post
          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.

          Comment


          • #6
            Ich würde das jetzt mit einer for oder while Schleife machen. Aber was meinst du mit
            Originally posted by wahsaga View Post
            wenn du eine sinnvolle Bildungsvorschrift für die Werte formulierst.
            ?

            Comment


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

              Comment


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

                Comment

                Working...
                X