我正在尝试编写一个函数,它将搜索字符串作为参数,并返回字符串中所有搜索项的数组。字符串中的每个值都被视为搜索项,但用双引号括起来的除外:这些短语应被视为单个搜索词。我假设字符串中的所有值都只用一个空格分隔,并且没有搜索字符串具有奇数个双引号,也就是说,所有起始引号都有一组匹配的结束引号。
到目前为止,这是我的代码:
function searchTerms($words)
{
$split = explode(" ", $words);
foreach ($split[0] == """) {
return $values;
}
}
return $split;
}
它无法正常工作。它给了我一个"注意:数组到字符串的转换"当我试图运行它。有人能告诉我我做错了吗?
谢谢 - 非常感谢所有帮助。
答案 0 :(得分:0)
您可以尝试:
使用单引号(例如$split[0] == '"'
)
或
转义双引号(例如$split[0] == "\""
)
此外,您似乎缺少代码。 $values
来自哪里,为什么会有额外的}
?
你为什么要用布尔条件做foreach?
foreach ($split[0] == """)
这不是foreach's的工作方式。
您可以考虑将其更改为:
$words = "Hello World";
$split = explode(" ", $words);
foreach ($split as $word) {
echo $word;
echo "<br>";
}
以上内容将输出到页面:
Hello
World