如果PHP语句太长,请减慢速度
我已经使用strpos来过滤用户的输入文本。如果用户已输入匹配城市,它将执行某些操作 然而,将会有很多城市 如果语句变得很长,则会减慢速度。有更好的方法吗如果PHP语句太长,请减慢速度,php,Php,我已经使用strpos来过滤用户的输入文本。如果用户已输入匹配城市,它将执行某些操作 然而,将会有很多城市 如果语句变得很长,则会减慢速度。有更好的方法吗 Switch语句可能会中断,但我不知道在这种情况下如何使用Switch+strpos。您可以将城市保留在数组中,只需使用in_数组函数检查数组中是否有$search。也许您应该这样做: if(strpos($search, "new york") !== FALSE){ //do something } else if(strpos(
Switch语句可能会中断,但我不知道在这种情况下如何使用Switch+strpos。您可以将城市保留在数组中,只需使用in_数组函数检查数组中是否有$search。也许您应该这样做:
if(strpos($search, "new york") !== FALSE){
//do something
}
else if(strpos($search, "Los Angeles") !== FALSE){
//do something
}...//keep going
或者,如果不使用print\r
,您只需在阵列中滚动并echo
如下所示:
$search ="I live in new york but I am moving to los angeles one day.";
$cities_array = array('new york', 'los angeles');
$cities_regex = sprintf('[%s]', implode('|', $cities_array));
if (preg_match_all($cities_regex, $search, $matches)) {
foreach($matches[0] as $matched_key => $matched_value) {
echo $matched_value . '<br />';
}
}
$search=“我住在纽约,但有一天我要搬到洛杉矶。”;
$cities_array=array(‘纽约’、‘洛杉矶’);
$cities_regex=sprintf('[%s]',内爆('|',$cities_数组));
if(preg_match_all($cities_regex,$search,$matches)){
foreach($matches[0]为$matched\u key=>$matched\u value){
回显$matched_值。“
”;
}
}
现在,只要拿出逻辑来处理
$matched_value
&你就可以了。为什么不使用选择选项来选择城市,只匹配城市或他们的键呢?用户选择的城市太多了,这不是一个好主意。使用正则表达式,匹配备选方案(洛杉矶|纽约)
,然后使用开关
。正如埃米利奥所说,我会重新考虑一下。比赛将比你想象的更难(不同的情况、拼写错误等)。自动完成怎么样?对于一长串的城市:自动完成
。问题是不同的城市会做不同的事情things@Nyaro,这是一个评论。没有答案。
Array
(
[0] => Array
(
[0] => new york
[1] => los angeles
)
)
$search ="I live in new york but I am moving to los angeles one day.";
$cities_array = array('new york', 'los angeles');
$cities_regex = sprintf('[%s]', implode('|', $cities_array));
if (preg_match_all($cities_regex, $search, $matches)) {
foreach($matches[0] as $matched_key => $matched_value) {
echo $matched_value . '<br />';
}
}