PHP searchTerms()函数 - 循环使用数组来查找以&#34开头的单词;

时间:2015-10-15 19:52:27

标签: php arrays

我正在尝试编写一个函数,它将搜索字符串作为参数,并返回字符串中所有搜索项的数组。字符串中的每个值都被视为搜索项,但用双引号括起来的除外:这些短语应被视为单个搜索词。我假设字符串中的所有值都只用一个空格分隔,并且没有搜索字符串具有奇数个双引号,也就是说,所有起始引号都有一组匹配的结束引号。

到目前为止,这是我的代码:

function searchTerms($words)
{
    $split = explode(" ", $words);
    foreach ($split[0] == """) {
            return $values;
        }
    }
    return $split;
}

它无法正常工作。它给了我一个"注意:数组到字符串的转换"当我试图运行它。有人能告诉我我做错了吗?

谢谢 - 非常感谢所有帮助。

1 个答案:

答案 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