我想弄清楚如何匹配数组中的任何单词。例如,下面的代码用于在数组中查找“测试名称”,但在数组中找不到“另一个测试名称”(由于单词“Another”)。有什么想法吗?
if (in_array($html[$i], $eventsarray))
{
$topeventaa = "yes";
}
else
{
$topeventaa = "no";
}
答案 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_replace和str_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
查找与给定模式匹配的数组的所有元素。