我正在尝试编写一个PHP函数来循环遍历多维数组,将其与商业名称匹配,然后返回“商业类型”。
根据我的目前技能,我编写了此功能,但我想知道除了循环两次之外是否有更好的解决方案,因为我的真实数组比下面的示例要大得多。
注:我是一名学生,我已经在StackOverflow上搜索过了,但没有找到我需要的答案。
输出结果:"租赁"
根据我的目前技能,我编写了此功能,但我想知道除了循环两次之外是否有更好的解决方案,因为我的真实数组比下面的示例要大得多。
注:我是一名学生,我已经在StackOverflow上搜索过了,但没有找到我需要的答案。
function find_business_type($dealer_name) {
$business_type = [
"OEM" => ["kia", "mercedes"],
"Rent" => ["rent", "rent-a-car"],
"Workshop" => ["shop", "workshop"],
"Spare Parts" => ["spare", "parts", "part"],
"General Trading" => ["gen", "general"]
];
foreach ($business_type as $key => $values) {
foreach ($values as $value) {
if (strpos($dealer_name, $value) !== false) {
return $key;
}
}
}
}
$my_dealer = "super-stars-123 rent a car";
echo find_business_type($my_dealer);
输出结果:"租赁"
$business_type
转换为某种可以更快搜索的结构。有许多方法可以做到这一点,但最终如果您必须在每个搜索过程中执行此操作,则会损失更多性能,因此您必须缓存它或使用特殊数据库,具体取决于数据的大小和更改频率,可能不值得这么多努力。因为它会变得更加复杂。尽管如此,我建议在 Code Review 上提问。 :) - xander