Значения массива PHP в строке?

Я некоторое время просматривал руководство по PHP и могу Я не нашел ни одной команды, которая делает то, что я хочу.

У меня есть массив с ключами и значениями, например:

$Fields = array("Color"=>"Bl","Taste"=>"Good","Height"=>"Tall");

Затем у меня есть строка, например:

$Headline = "My black coffee is cold";

Теперь я хочу узнать, совпадают ли какие-либо из значений массива ($ Fields) где-нибудь в строке ($ Headline).

Пример:

Array_function_xxx($Headline,$Fields);

Дало бы результат истинный, потому что «bl» находится в строке $ Headline (как часть «Black»).

Я спрашиваю, потому что мне нужна производительность. .. Если это невозможно, я просто создам свою собственную функцию ...

EDIT - Я ищу что-то вроде stristr (string $ haystack, array $ Need);

Спасибо

РЕШЕНИЕ - Я придумал его функцию.

function array_in_str($fString, $fArray) {

  $rMatch = array();

  foreach($fArray as $Value) {
    $Pos = stripos($fString,$Value);
    if($Pos !== false)
      // Add whatever information you need
      $rMatch[] = array( "Start"=>$Pos,
                         "End"=>$Pos+strlen($Value)-1,
                         "Value"=>$Value
                       );
  }

  return $rMatch;
}

Возвращаемый массив теперь содержит информацию о том, где начинается и заканчивается каждое совпадающее слово.

5
задан Max Kielland 8 May 2011 в 14:47
поделиться