2010-11-22 7 views
0

ich eine Abfrage über ein Array oder String mit PHPRun Abfrage über einen Array

Let ausführen möchten sagen, dass ich einen String bekam:

$Iamastring = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc velit est, porta sed feugiat vitae, sodales et nisl. Suspendisse ut." 

Und ich möchte eine Abfrage über diese Zeichenfolge laufen finden unter:

"Lorem ipsum" OR ("dolor" AND "sodales") 

In diesem Fall wäre es wahr :) sein. Wie ist der beste Weg dies zu tun?

Antwort

2

regexp :) preg_match('\(Lorem ipsum)|(dolor.+sodales)\', $matches). Oder Variationen mit unterschiedlichen regexp der

+0

Dies würde für die Zeichenfolge funktionieren, aber Sie müssten [map] (http://us2.php.net/array-map) es zum Array, wenn Sie ein Array von Zeichenfolgen hätten. – sholsinger

0

Sie würden dies mit einem regulären Ausdruck tun. Schauen Sie sich so etwas wie preg_match()

Folgendes sollte wahr oder falsch zurück, wenn das Muster passt:

preg_match ('/(Lorem ipsum)|(dolor+sodales)/' $Iamastring); 
0

RegExp ist eine Möglichkeit, aber wenn Sie integrierte String-Funktionen verwenden möchten:

$haystack="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc velit est, porta sed feugiat vitae, sodales et nisl. Suspendisse ut."; 

if((strrpos($haystack, "Lorem Ipsum")!==false)||((strrpos($haystack, "dolor")!==false)&&(strrpos($haystack, "sales")!==false))){ 

// do this if true 

} 

Beachten Sie, dass phps eingebauten String-Funktionen sind schneller als reguläre Ausdrücke, aber jeder Ansatz variiert in Angemessenheit in Abhängigkeit von Kontext.