Text überprüfen mit Hilfe eines Array

JavaMaddin

Mitglied
Habe einen Text (1000 Wörter) -> $text
Habe ein Array (50 Wörter) -> $array

Möchte nun den Text durchsuchen lassen und wenn nur ein Wort aus dem Array darin enthalten ist soll etwas passieren...

Bekomm es irgendwie nicht hin.

Danke schonmal.
 
Ich meinte dass nur der Text durchsucht wird mit den Wörtern im Array und nicht der Text in ein Array gespeichert werden soll.

Vielleicht eine for each Schleife mit jedem Element des Arrays und dann mit strpos STRING?
 
Hallo,

der Vorschlag von einfach_nur_crack ist doch nur ein möglicher Algorithmus, mit dem du dein Problem lösen kannst. Dein Text bleibt doch weiterhin als String vorhanden und du kannst nach der Überprüfung mit ihm anstellen was du möchtest.

array_search hört sich nach einer Schleife an. Mit http://php.net/array_diff könntest du dir die Schleife sparen.

PHP:
$text = 'Ich bin ein Text.';

$array = explode(' ', str_replace(array('.', ',', '?', '!',), '', $text));
$words = array('Text', 'foo', 'bar',);

if (count($array) > count(array_diff($array, $words))) {
  // mach was
}
Ungetestet!

[..]wenn nur ein Wort aus dem Array darin enthalten ist soll etwas passieren...
Ich hoffe, ich habe dich in diesem Punkt richtig verstanden.

Soll nur etwas passieren wenn mindestens ein Wort enthalten ist oder darf es wirklich nur genau 1 Wort sein? Ist letzteres der Fall, musst du die Bedingung noch anpassen!
 
Zuletzt bearbeitet:
array_search() verlangt keine Schleife, da die Funktion darauf ausgerichtet ist ein Array zu durchsuchen. Der Suchbegriff kann dabei auch ein Array sein. Ich hätte dennoch einen Verbesserungsvorschlag meinerseits: in_array()
 
Ja habs ohne count() gemacht.
Er zählt eh standardmäßig das Array durch, glaub ich.

Edit:
Ging doch nicht.
Hab es nun mit

"foreach ($verboten as $value) {
if ( stristr($text, $value) ) {..."

realisiert.
Das klappt wunderbar.
 
Zuletzt bearbeitet:
Zurück