PHP in_array查找任何匹配项

时间:2011-09-27 21:28:47

标签: php arrays

我想弄清楚如何匹配数组中的任何单词。例如,下面的代码用于在数组中查找“测试名称”,但在数组中找不到“另一个测试名称”(由于单词“Another”)。有什么想法吗?

if (in_array($html[$i], $eventsarray))
{
    $topeventaa = "yes";
}
else
{
    $topeventaa = "no";
}

6 个答案:

答案 0 :(得分:2)

取自http://php.net/manual/en/function.in-array.php

<?php

/**
 * Takes a needle and haystack (just like in_array()) and does a wildcard search on it's values.
 *
 * @param    string        $string        Needle to find
 * @param    array        $array        Haystack to look through
 * @result    array                    Returns the elements that the $string was found in
 */
function find ($string, $array = array ())
{       
    foreach ($array as $key => $value) {
        unset ($array[$key]);
        if (strpos($value, $string) !== false) {
            $array[$key] = $value;
        }
    }       
    return $array;
}

&GT;

答案 1 :(得分:0)

如果要将任何字词与数组中的字词匹配,您可能需要在字符串上使用explode,然后像在示例中一样检查每个标记。

答案 2 :(得分:0)

我们可能需要更多信息,但您可以使用preg_match所需的模式匹配创建变量,并将其作为搜索中的参数传递。

preg_replacestr_replace可能会有所帮助,具体取决于您要完成的工作。

答案 3 :(得分:0)

您可能希望查看递归函数调用,例如遍历目录树中的所有目录时。 我将数组拼接到找到它的索引,将剩余的数据传递回同一个函数以再次搜索。 根据您想知道字符串中单词出现次数的结果,我们可以开始分解问题并编写一些代码。

答案 4 :(得分:0)

贾斯汀,没有直接的方法 - 没有现有的内置功能 - 做我认为你寻求的事情;你必须按照

的方式自己迭代数组
$topeventaa = "no";
for ($eventsarray as $key=>$value){
    if (0 <= strpos($html[$i], $eventsarray[$key])) {
        $topeventaa = "yes";
        break;
    }
}

答案 5 :(得分:0)

使用preg_grep代替in_array查找与给定模式匹配的数组的所有元素。