stristr php函数不能正常工作

时间:2013-10-21 22:44:04

标签: php for-loop foreach strstr

for($check = 0; $check<12;$check++)
{
    echo "<strong>" .$cars[$check] .":</strong>";

    foreach($models as $model)
    {

        if ( stristr($model, $cars[$check]))

        {
            echo $model;
        }
    }

}

$ cars是一个包含12个车辆制造的阵列,$ model是一个大型阵列(约3000个元素),其中包含许多不同车型的车型。 我希望我的代码可以回显模型名称,如果它可以找到汽车的名称($ cars [$ check])。问题是它没有返回任何内容,但是如果我用“BMW”这样的静态字符串替换if函数中的“$ cars [$ check]”,那么返回包含字符串“BMW”的模型没有问题。我尝试了几个小时,并在互联网上搜索,无法找到解决方案。代码有问题,或者以错误的方式解决了这个问题?

1 个答案:

答案 0 :(得分:2)

您也可以尝试使用foreach作为汽车模型,并使用密钥代替$check:您与密钥和值保持自然关联,这样您就无法破解它让$check成为未定义的索引(在某些情况下杀死你的PHP执行)

foreach($cars as $check => $car) {

    echo "<strong>" . $car . "</strong>";
    foreach($models as $model) {
        if(stristr($model, $car))
            echo $model;
    }

}

- 编辑 - 如果您只希望为每辆车分配一个型号,而且您有很多型号,则应在continue之后使用echo $model来减少服务器处理。这将跳过汽车的 foreach循环的迭代,然后继续下一步。

if(stristr($model, car)) {
    echo $model;
    continue 2;
}