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

    foreach($models as $model)
    {

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

        {
            echo $model;
        }
    }

}

$cars 是一个包含 12 个汽车品牌的数组,$models 是一个大数组(大约 3000 个元素),其中包含许多不同汽车品牌的模型。如果可以在其中找到汽车的名称 ($cars[$check]),我希望我的代码能够回显型号名称。问题是它什么都不返回,但是如果我用像“BMW”这样的静态字符串替换 if 函数中的“$cars[$check]”,那么返回包含字符串“BMW”的模型就没有问题. 我尝试了几个小时,并在互联网上进进出出,找不到解决方案。是代码有问题,还是以错误的方式处理了这个问题?

4

1 回答 1

2

您也可以尝试使用foreach汽车模型,并使用键而不是$check:您与键和值保持自然关联,这样您就不能通过$check未定义的索引来破坏它(并杀死您的 PHP 执行一些实例)

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

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

}

--edit-- 如果您只希望为每辆车分配一个模型,并且您有很多模型,则应该通过continueecho $model. 这将跳过汽车的foreach 循环的迭代并继续下一个。

if(stristr($model, car)) {
    echo $model;
    continue 2;
}
于 2013-10-21T22:49:29.860 回答