$longString = "I walk in the park.";
$stringArray = array("walk", "park", "beach");
基本上,我想搜索$longString
所有在$stringArray
中的子字符串。所以在这种情况下,我想找到散步和公园,然后回应这些字符串。PHP:在字符串中搜索数组中的所有子字符串,然后回显所有匹配?
这是可行的吗?多谢你们!
$longString = "I walk in the park.";
$stringArray = array("walk", "park", "beach");
基本上,我想搜索$longString
所有在$stringArray
中的子字符串。所以在这种情况下,我想找到散步和公园,然后回应这些字符串。PHP:在字符串中搜索数组中的所有子字符串,然后回显所有匹配?
这是可行的吗?多谢你们!
循环通过阵列并检查是否该字符串存在于长字符串:
$longString = "I walk in the park and I like to jumprope.";
$stringArray = array("walk" => "walk", "park" => "park", "jumprope" => "jump rope");
foreach($stringArray as $search => $print) {
if(!(strpos($longString, $search) === false)) {
echo $print;
}
}
您可以额外/可选地使用'lcase()''$ longString'和'$ stringArray'来匹配大小写而不区分大小写。 –
更正或更改对'stripos'的'strpos'调用以区分大小写。 – nickb
这是不正确的,因为strpos可以返回0索引,如果字符串的开头是substring,那么最好使用!== false运算符。 –
$longString = "I walk in the park.";
$stringArray = array("walk", "park", "beach");
foreach ($stringArray as $item) {
if (stristr($longString, $item))
echo $item . "<br>";
}
OP没有指定,但此方法也匹配“停放”或“搁置”...如果字边界很重要,则需要regex。 – rdlowrey
$longString = "I walk in the park.";
$stringArray = array{"walk", "park", "beach",);
foreach($stringArray as $search) {
if(strpos($longString, $search) !== FALSE) {
echo $search;
}
}
OP没有指定,但此方法也匹配“停泊”或“搁浅”...如果字边界很重要,则需要regex。 – rdlowrey
当然,这是可能的:
$longString = "I walk in the park.";
$stringArray = array("walk", "park", "beach");
foreach ($stringArray as $key => $val) {
if (strpos($longString, $val) === false) {
unset($stringArray[$key]);
}
}
var_dump($stringArray);
$stringArray
将只包含出现在$longString
中的字符串。
是的,这是可行的。你有什么尝试?因为SO!== *“为我编写我的代码k谢谢!”* – rdlowrey
您有一个语法错误。 'array()'不是'array {)'。此外,尾随逗号可以去。 –