Tom: tatsächlich eigene Dummheit?

Beitrag lesen

Hello,

Wieso kann denn array_search "1.12.2004" innerhalb von "01.12.2004" nicht finden? Ist das wirklich zuviel verlangt? - Anscheinend schon.

Die Aufgabe von Array_Search() ist es, einen Wrt in einem Array zu finden, und zwar mit genauer Übereinstimmung. In Deinem Array stehen ja auch noch nehr Zeichen in den Elementen, als nur das Datum.

Wenn Du eine 'enthält_string'-Suchen machen willst, dann musst Du eine eigene Funktion bauen.
Vielleicht geht das sogar mit Array_map() und str_pos(). Es funktioniert aber auf jeden Fall mit foreach() und str_pos()

$suchstring = '1.12.2004';
  $_filearray = file($filename);

$_treffer = array();

if (is_array($_filearray))                ## foreach() darf nur ein Array bekommen
  foreach($_filearray as $key => $line)     ## in jeder Zeile suchen
  {
    if (false !== ($pos = str_pos($line, $suchstring))  ## ob der Suchstring mindests 1mal vorkommt
    {
      $_treffer[] = $key;                   ## und dann die Zeilennummer merken.
    }                                       ## fängt mit 0 an!
  }

if (count($_treffer) > 0)
  {
    echo "<p><strong>$suchstring</strong> wurde in den Zeilen ".explode(',',$_treffer)." gefunden</p>\n";
  }
  else
  {
    echo "<p><strong>$suchstring</strong> ist im durchsuchten Bereich nicht vorhanden.</p>\n";
  }

Außerdem könntest Du über den dritten Paramter von str_pos noch festlegen, ab welcher Position innerhalb der Zeile nach dem Teilstring gesucht werden soll.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau