返回数组值如果它包含在字符串中

时间:2016-04-04 21:47:30

标签: php

如何返回字符串中找到的数组的值?这是我的代码。但是代替返回“电源”的代码,它返回“其他”:

$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';
    }
}

由于

1 个答案:

答案 0 :(得分:0)

对我来说,该代码产生正确的输出,但只是巧合。我猜你已经从实际代码中简化了它。

问题是,只有当数组中的 last 项包含在字符串中时,它才会起作用。这是因为每次数组中的项不在字符串中时,您都会用$catr2覆盖'Others'

您可能要做的是在循环之前将$catr2设置为'Others',然后只有在匹配一个项目时才会在循环中进行修改,否则它将保持默认值。