Hasharray aus Textfile erstellen

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

  • Hasharray aus Textfile erstellen

    Hallo Zusammen,

    habe heute schon das zweite Problem mit PHP.
    Ich habe ein csv File - darin stehen diverse, eindeutige Nummern
    mit dazugehörigen Texten. Getrennt sind Nummer und Text durch ein Semikolon. Mit dem Filehandel lese ich das File ein und splitte es in
    zwei Variablen - $id und $text. Den gesplitteten Inhalt möchte ich in ein
    HashArray schreiben damit ich mir bei Aufruf der ID´s den passenden Text
    dazu aufrufen kann. Der Text ist kurz und leider kann ich hier nicht mit einer Datenbank arbeiten. Irgendwie will es mir aber nicht gelingen das
    Skript zum Laufen zu bringen. Vielleicht hat von Euch jemand einen Tipp woran es liegt?!?!
    PHP-Code:
    $file "muster.csv";
    $farray   =  file($file) or die("Fehler beim oeffnen der Datei muster.csv)");
    $filehash = array("id" => "text");        
        if(
    $farray
        {        
              foreach(
    $farray as $line
              {
                   list(
    id$text) = split(";"$line);
                   
    addArray($filehash$id$text);
                   echo 
    " id " $id " text " $text ."<br>";
              }
        }

    $hashsize sizeof($filehash);
    echo 
    $hashsize;
                  
                  
    function 
    addArray(&$list$key$val

        
    $newfilehash array_push($key => $val);
        
    $list array_merge($list$newfilehash); 


  • #2
    dein addarray ist ja... interessant
    PHP-Code:
    foreach($farray as $line)  {
      list(
    id$text) = split(";"$line);
      
    $filehash[$id] = $text;
      echo 
    " id " $id " text " $text ."<br>";

    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Ups, da fehlte natürlich ein Dollar Zeichen.
      Ist im Original aber da!
      PHP-Code:
      foreach($farray as $line)  {
        list(
      $id$text) = split(";"$line);
        
      $filehash[$id] = $text;
        echo 
      " id " $id " text " $text ."<br>";

      Danke für Deine Hilfe - es scheint zu funktionieren!
      Hab da wohl zu kompliziert gedacht

      Kommentar


      • #4
        Achso, jetzt weiss ich auch was das Problem ist!
        Ich bekomme noch zusätzlich Daten mit der jeweiligen ID
        aus einer Datenbank - hatte zwar gesagt es gibt keine, muss aber für diese Lösung mit einem Textfile arbeiten. Diese Datensätze bringen jetzt jeweils die unique ID mit die auch im Textfile genannt werden.
        Ich möchte jetzt den passenden Text (steht bei der ID) aus dem
        HashArray zum Datensatz finden. Geht das? Ist vielleicht ne blöde
        Frage, aber nach nunmehr 7 Stunden PHP raucht mir die Birne

        Kommentar


        • #5
          wenn ich dich richtig verstanden habe, ist das so dermaßen simpel, dass du die hilfsbereitschaft durch zeigen von code steigern könntest
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Oh man, Du hast sicher recht... es ist mir auch peinlich!
            Vielleicht sollte ich es für heute belassen und morgen weiter machen...
            Hab jetzt z.B. auch das Problem der Ausgabe des Hash Arrays
            PHP-Code:
            foreach($farray as $line)  {
              list(
            $id$text) = split(";"$line);
              
            $filehash[$id] = $text;
              echo 
            " id " $filehash[$id] . " text " $filehash[$text] ."<br>";

            Da bringt er mir nur den Text aber nicht die ID.

            Kommentar


            • #7
              beschäftige dich mit arrays und dem zugriff darauf

              foreach ist eine gute anlaufstelle
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Ich bins noch mal,

                hab da auch was gefunden was funktioniert
                PHP-Code:
                foreach($filehash as $key => $value)
                {
                      echo 
                $key ."     "$value "<br>";

                Die Sache ist nur die, dass ich das resultset der Datenbank ebenfalls mit
                einer foreach Schleife aufrufe
                PHP-Code:
                foreach($results as $result
                {
                    echo 
                "<tr>"
                      
                ."<td nowrap bgcolor=\"#c0c0c0\">".$result->gueltig_von."</td>"
                    
                    
                    
                //auskommentiert da es nicht funktioniert
                    /*if($filehash[$id] == $result->news_id)
                    {    
                        ."<td bgcolor=\"#c0c0c0\">".$filehash[$text]."</td>";
                    }
                    else
                    {
                        ."<td bgcolor=\"#c0c0c0\"></td>";
                    }*/
                                
                       
                ."<td bgcolor=\"#c0c0c0\">".$result->titel."</td>"
                       
                ."<td bgcolor=\"#c0c0c0\"><a 
                href=\"http://"
                .$server."/suche/".basename($datei)."\" 
                target=\"_new\">ansehen...</a></td>"
                    
                ."</tr>";
                          
                // Ende foreach 
                Mir ist unklar wie ich das jetzt implementiere
                EDIT:
                Ümbrüche sponsored by TobiaZ
                Zuletzt geändert von TobiaZ; 29.12.2004, 15:49.

                Kommentar


                • #9
                  Hab die Lösung jetzt gefunden!

                  Kommentar


                  • #10
                    dann poste sie doch bitte!

                    Und mach bitte umbrüche rein.

                    Kommentar

                    Lädt...
                    X