Einen String nach einem Wort durchsuchen

M3Y3R

Well-known member
ID: 336361
L
8 Mai 2006
1.608
60
Hallo,

ich habe Daten aus einer Spalte meiner DB ausgelesen welche in ein Array gespeichert werden.
Nun möchte ich dieses Array nach einem Wort durchsuchen. Gibt es dafür eine funktion unter php oder muss ich eine erneute SQL-Abfrage mit Like %wort% machen? Wenn es eine Funktion gibt, wie heißt diese?

Danke!

LG Papenburger
 
Zuletzt bearbeitet:
So sucht er vielleicht nur was gibt der für einen Wert zurück?
Eigentlich soll der das Feld in einer anderen Farbe hinterlegen, welches das wort Critical enthällt.
 
Wenn es nicht das ist was Du suchst must du Dein Anliegen nochmal versuchen deutlicher zu schildern.

Also, ich habe ein Array
PHP:
$msgtxt[$i]

welches nach einem Wort durchsucht werden soll. Findet er das Wort, soll der Hintergrund der Tabellen-Zeile geändert werden. Ansonstn bleibt der Hintergrund so...

mit
PHP:
array_search('CRITICAL',$msgtext[$i])==TRUE
oder
PHP:
array_search('CRITICAL',$msgtext[$i])==FALSE
geht das leider nicht... auch mir
PHP:
array_search('CRITICAL',$msgtext[$i])==1
geht das nicht
 
Dann speicher den key von array_search

und geh den Key anstatt mit foreach mit einer for schleife durch und wenn der key an der Reihe ist gibst du dem <td> tag nen style="background-color: #xxxxxx;".

Oder du gehst den Array mit einer foreach Schleife durch und suchst in dem Feld mit strpos wenn strpos was findet, gleich td bearbeiten.

Eleganter finde ich Array search, welches aber soweit ich weis keine Teiltreffer zu lässt. Also was wort muß Wirdlich so drinstehen. Das kann an aber auch noch ein klein wenig entschärfen.

*edit
Diese Funktion durchsucht haystack nach needle und gibt bei Erfolg den Schlüssel zurück, andernfalls FALSE.
Diese Funktion nimmst du wenn du mehrmal den gleichen Wert hast
array_keys()
 
Zuletzt bearbeitet:
versuchs mal mit strpos oder preg_match direkt in der ausgabe... bsp

PHP:
while($daten = mysql_fetch...) {
   if(strpos('critical',$daten['status_feld'])) echo 'kritische rdatensatz!';
   ...
}
 
Irgendwie will das noch nicht so...

In dem Array, werden nicht Wörte gespeichert, sondern mehrere Sätze.
Nun möchte ich jeden Satz des Array $msgtext[$i] nach nur einem Wort durchsuchen.

Kommt es in dem Satz vor, so soll der Gackground geändert werden...

Beispiel

PHP:
$key[$i]=array_search($msgtext[$i], "CRITICAL")
if ($key[$i]=="False")
{
echo "Vorhanden!";
}
else
{
echo "Nicht vorhanden!"
}

Ich hoffe ihr wisst nun wie ich das meine...

LG
Daniel
 
ZeroCCC und strolch00 haben eh schon gesagt wie es funktionieren sollte.

PHP:
foreach ($msgtext as $key => $value)
{
   if(strpos($value, "Suchwort"))
      echo "<td class=\"newbg\">".$value."</td>"
   else
      echo "<td>".$value."</td>";
}

jperl