如何返回字符串中找到的数组的值?这是我的代码。但是代替返回“电源”的代码,它返回“其他”:
$string = "Summit 450W DC PSU FB - 450W DC Power Supply module for Summit switches";
$arry = array('Warranty', 'Software', 'Power Supply');
foreach ($arry as $word) {
if (strpos($string, $word) !== false) {
$catr2 = $word;
} else {
$catr2 = 'Others';
}
}
由于
答案 0 :(得分:0)
对我来说,该代码产生正确的输出,但只是巧合。我猜你已经从实际代码中简化了它。
问题是,只有当数组中的 last 项包含在字符串中时,它才会起作用。这是因为每次数组中的项不在字符串中时,您都会用$catr2
覆盖'Others'
。
您可能要做的是在循环之前将$catr2
设置为'Others'
,然后只有在匹配一个项目时才会在循环中进行修改,否则它将保持默认值。