2013-10-21 58 views
0
for($check = 0; $check<12;$check++) 
{ 
    echo "<strong>" .$cars[$check] .":</strong>"; 

    foreach($models as $model) 
    { 

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

     { 
      echo $model; 
     } 
    } 

} 

$汽车是一个包含12车辆进行一个数组,$模型是一个大阵(约3000元),其中包含许多车型不同的汽车制造。 我希望从我的代码中回应模型名称,如果它可以找到车的名称($ cars [$ check])。问题是它没有任何返回,但是如果我用“BMW”这样的静态字符串替换if函数中的“$ cars [$ check]”,那么在返回包含字符串“BMW”的模型时没有问题。我尝试了几个小时,并搜索了互联网,并找不到解决方案。代码有问题,还是以错误的方式处理?stristr PHP函数不能正常工作,因为它应该

+0

'$ models'和'$ cars'数组的格式是什么?您可能在PHP中有未定义的索引/变量错误,可能会导致您的脚本无法正常使用,这将不会返回任何内容。 –

+0

'$ cars'的价值是什么?请使用'var_dump'并将结果作为编辑发布到您的帖子中。 – TheWolf

回答

2

你可以尝试使用foreach的汽车模型,以及,使用一键代替$check:你跟上键和值自然联想这样做,所以你不能打破它具有$check是未定义指数(和杀死你的PHP执行在某些情况下)

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

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

} 

- 编辑 - 如果你只希望一个模型被分配到每一辆车,和你有很多的模型,您应该减少您的服务器处理在您的echo $model之后使用continue。这将跳过对foreach循环的迭代,然后转到下一个循环。

if(stristr($model, car)) { 
    echo $model; 
    continue 2; 
} 
相关问题