2017-01-30 16 views
0
$array_keywords = ('red','blue','green'); 
$string = "Sometimes I'm happy, Sometimes I'm blue, Sometimes I'm sad"; 

(PHP) Поиск ключевых слов (из массива) в строки и печати совпадений, в этом случае желаемый результат должен быть возвращение «голубой».Поиск ключевых слов из массива в строки (PHP)

Как это сделать?

ответ

0

Используйте это:

$array_keywords = array('red','blue','green'); 

$string = 'Sometimes I'm happy, Sometimes I'm blue, Sometimes I'm sad'; 

foreach ($array_keywords as $keys) { 
    if (strpos($string, $keys)) { 
     echo "Match found"; 
     return true; 
    } 
} 
echo "Not found!"; 
return false; 

Вы также можете использовать stristr() и stripos() проверить регистр.

Или вы можете увидеть Lucanos answer

0

Проверьте этот код,

<?php 
function strpos_array($haystack, $needles, &$str_return) { 

    if (is_array($needles)) { 
     foreach ($needles as $str) { 
      if (is_array($str)) { 
       $pos = strpos_array($haystack, $str); 
      } else { 
       $pos = strpos($haystack, $str); 
      } 

      if ($pos !== FALSE) { 
       $str_return[] = $str; 
      } 
     } 
    } else { 
     return strpos($haystack, $needles); 
    } 
} 

// Test 
$str = []; 
$array_keywords = ('red','blue','green'); 
$string = "Sometimes I'm happy, Sometimes I'm blue, Sometimes I'm sad"; 

strpos_array($string, $array_keywords,$str_return); 
print_r($str_return); 
?> 

Это продвинутый strpos код с массивами.

Более точный способ выполнения вашего требования - получить массив, если соответствует более чем одному элементу.