$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 {)'。此外,尾隨逗號可以去。 –