PHP - 如何在数组中找到部分单词?

时间:2014-03-17 17:02:51

标签: php

我有一句话:

 $word = "samsung";

我有阵列:

$myarray = Array(
[0] => "Samsung=tv"
[1] => "Apple=mobile"
[2] => "Nokia=mobile"
[3] => "LG=tv"

我现在需要这样的东西才能找到部分匹配:

 if($word in $myarray){ echo "YES"; } // samsung found in Samsung=tv

感谢您的帮助。

5 个答案:

答案 0 :(得分:3)

您想要in_array http://us3.php.net/manual/en/function.in-array.php

if(in_array($word,$myarray){ echo 'yes'; }

答案 1 :(得分:1)

如果您正在寻找部分匹配,可以使用带有foreach循环的strpos()来迭代数组。

foreach ($myarray as $key => $value) {

    if (strpos($value, $word) !== FALSE) {
        echo "Yes";
    }

}

答案 2 :(得分:1)

没有内置功能来进行部分匹配,但您可以轻松创建自己的功能:

function in_array_partial($needle, $haystack){
    $result = false;

    $needle = strtolower($needle);
    foreach($haystack as $elem){
        if(strpos(strtolower($elem), $needle) !== false){
            $result = true;
            break;
        }
    }
    return $result;
}

用法:

if(in_array_partial('samsung', $myarray)){
    echo 'yes';
}

答案 3 :(得分:1)

你在找这样的东西吗?

<?php
$myarray = array("Samsung=tv", "Apple=mobile", "Nokia=mobile", "LG=tv");


function findSimilarWordInArray($word, $array) {

    if (empty($array) && !is_array($array) return false;

    foreach ($array as $key=>$value) {
        if (strpos( strtolower($value), strtolower($word)) !== false) {
            return true;
        } // if
    } // foreach

}

// use case

if ( findSimilarWordInArray('samsung',$myarray) ) {
    echo "I've found it!";
}
?>

它允许您在数组值中查找类似的单词。

答案 4 :(得分:0)

您可以尝试这样的事情:

function my_in_array($word, $array){
 forach($array as $value){
  if(strpos($word, $value) !== false){
   return true;
  }
 }
return false;
}