Kalle: fgetcsv

Hallo zusammen,
habe hier eine Suchroutine, die erst einmal das tut, was ich brauche:
Der Begriff "mm;02" wird gefunden und obwohl mehrfach im file (eintrag.txt) vorhanden, wird mir nur die letzte Zeile mit diesem Suchbegriff angezeigt:

mm;02;dd;01;hh;06;peter;x2;13:56

<?php
$such = "/\mm;02\b/i";
$eintrag = preg_grep($such, file('eintrag.txt'));
foreach ($eintrag as $anz)
  $out = array($anz);
  echo end($out);
?>

(eintrag.txt)
mm;01;dd;01;hh;00;bernd;x2;13:56
mm;02;dd;01;hh;01;bernd;x2;12:54
mm;03;dd;05;hh;02;holger;x2;13:33
mm;01;dd;01;hh;03;ute;x2;13:56
mm;01;dd;01;hh;05;peter;x2;13:56
mm;02;dd;01;hh;06;peter;x2;13:56
mm;08;dd;02;hh;15;doro;x22;10:30
mm;08;dd;07;hh;16;doro;x928;10:30
mm;04;dd;02;hh;22;bernd;x321;22:46

Nun brauche ich aber aus dieser Zeile

mm;02;dd;01;hh;06;peter;x2;13:56

nur den Namen, also Eintrag 6.

<?php
$such = "/\mm;02\b/i";
$eintrag = preg_grep($such, file('eintrag.txt'));
foreach ($eintrag as $anz)
  $out = array($anz);
//  echo end($out);
while ( !feof() ) {
   $row = fgetcsv(end($out), 512, ";" );
   echo ($row[6]);
}
?>

...so geht es leider nicht...
Wer hat bitte eine Lösung zu meiner Abfrage.
Danke und Gruß, Kalle

  1. gudn tach!

    <?php
    $such = "/\mm;02\b/i";
    $eintrag = preg_grep($such, file('eintrag.txt'));
    foreach ($eintrag as $anz)
      $out = array($anz);
      echo end($out);
    ?>

    unkonventionelle einrueckung! besser waere

      
    foreach($eintrag as $anz)  
      $out = array($anz);  
    echo end($out);
    

    oder

      
    foreach($eintrag as $anz){  
      $out = array($anz);  
    }  
    echo end($out);
    

    aber unabhaengig davon scheinst du nicht verstanden zu haben, was du da ueberhaupt machst (oder ich habe noch weniger ahnung von php als ich bisher dachte).

    foreach ($eintrag as $anz)  
      $out = array($anz);
    

    wozu soll das im kontext dienen?

    hand aufs herz. wie lange hast du im php-handbuch auf den seiten zu preg_grep, foreach und fgetcsv verweilt?

    prost
    seth

  2. Hallo Kalle,

    $row = fgetcsv(end($out), 512, ";" );

    Schau Dir in der Dokumentation an welche Parameter fgetcsv erwartet.
    http://de3.php.net/manual/de/function.fgetcsv.php

    An dieser Stelle könnte explode() bzw. split() ein geeigneteres Werkzeug sein.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hallo Kalle,

      $row = fgetcsv(end($out), 512, ";" );

      Schau Dir in der Dokumentation an welche Parameter fgetcsv erwartet.
      http://de3.php.net/manual/de/function.fgetcsv.php

      An dieser Stelle könnte explode() bzw. split() ein geeigneteres Werkzeug sein.

      Hallo lulu, explode()war der Hinweis, der mich weitergebracht hat - super!
      Vielen Dank und fröhliche Grüße, Kalle

      Viele Grüße

      lulu