Php 开关适用于特定情况,但仅适用于某些项目?

Php 开关适用于特定情况,但仅适用于某些项目?,php,switch-statement,Php,Switch Statement,我创建的开关有一个奇怪的问题: <?php $stream = $row->field_stream; $img = ""; switch ( $stream ) { case 'Landfill': $img = 'landfill.gif'; break; case 'Paper (Blue Box)': $img = 'paper-blue-box.gif'; break; case 'Scrap Metal ': $i

我创建的开关有一个奇怪的问题:

<?php
$stream = $row->field_stream;
 $img = "";
  switch ( $stream ) {
  case 'Landfill':
    $img = 'landfill.gif';
    break;
  case 'Paper (Blue Box)':
    $img = 'paper-blue-box.gif';
    break;
  case 'Scrap Metal ':
    $img = 'scrap-metal.gif';
    break;
  case 'Household Hazardous Waste Depot':
    $img = 'hazardous-waste-depot.gif';
    break;
  case 'Container Recycling (Yellow Bin)':
    $img = 'yellow-bin-recycling.gif';
    break;
  case 'Regular Garbage (Bag/Can) ':
    $img = 'regular-garbage-can.gif';
    break;
  case 'Organics (Green Cart)':
    $img = 'organics-green-cart.gif';
    break;
  case 'Electronic Waste Depot':
    $img = 'e-waste-depot.gif';
    break;
  case 'Construction & Demolition ':
    $img = 'construction-demo.gif';
    break;
  }
    print '<img class="waste-lookup-icon" src="/sites/default/files/' . $img . '">';
?>

除了“纸(蓝盒)”外,它可以工作:对于某些项目,开关可以工作,而对于其他项目,开关不能工作。它们都有完全相同的“纸(蓝盒子)”值,所以我正在努力弄清楚到底发生了什么

你可以在这里看到它的作用,如果你在顶部搜索“纸”,你会看到图像被破坏。如果您尝试“Board”,您将看到它适用于具有“Paper(Blue Box)”值的项目

编辑:固定

谢谢你的帮助。正如Brian所注意到的,问题在于,即使在DB中,字符串也不相同。使用搜索API的“突出显示”功能,它在字符串中加粗了“纸”,使其与众不同。我为“纸张”添加了一个案例,它成功了。我还可以去掉$stream标签,但这是一个简单的修复方法


再次感谢

在应用
switch
语句之前,您是否尝试过修剪
$stream
的值?我没有,但这会解决什么问题?你有一个例子吗?谢谢。我建议您使用
var\u dump($stream)在switch语句之前。在google上可以找到一个修剪的例子,通过
修剪一个值php
@Ash我猜,
$stream
的值有时是精确匹配的(即“纸(蓝框)”,但有时它有额外的空白(即“纸(蓝框)”)。