【发布时间】:2020-12-07 00:48:15
【问题描述】:
我在 PHP 中使用以下函数使用preg_match(); 从包含“near”的字符串中检测实体和位置。有没有更优化的方法来为此编写代码?我使用了很多 if 语句,似乎可以改进,但我不确定如何。
// Test cases
$q = "red robin near seattle";
//$q = "red robin near me";
//$q = "red robin nearby";
//$q = "red robin near my location";
function getEntityAndLocation($q){
$entityAndLocation = array("entity" => null, "location" => null);
if(preg_match('(nearby)', $q) === 1) {
$breakdown = explode("nearby", $q);
$entityAndLocation["entity"] = $breakdown[0];
$entityAndLocation["location"] = $breakdown[1];
return $entityAndLocation;
}
if(preg_match('(near my location)', $q) === 1) {
$breakdown = explode("near my location", $q);
$entityAndLocation["entity"] = $breakdown[0];
$entityAndLocation["location"] = $breakdown[1];
return $entityAndLocation;
}
if(preg_match('(near me)', $q) === 1) {
$breakdown = explode("near me", $q);
$entityAndLocation["entity"] = $breakdown[0];
$entityAndLocation["location"] = $breakdown[1];
return $entityAndLocation;
}
if(preg_match('(near)', $q) === 1) {
$breakdown = explode("near", $q);
$entityAndLocation["entity"] = $breakdown[0];
$entityAndLocation["location"] = $breakdown[1];
return $entityAndLocation;
}
}
if(preg_match('(near)', $q) === 1) {
$entityAndLocation = getEntityAndLocation($q);
print_r($entityAndLocation);
}
【问题讨论】:
-
所以您想查看字符串是否包含特定的“短语/单词”?
标签: php arrays if-statement optimization preg-match