0

我有一个数据字符串

$amenities = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21

这些是用户从 21 chkbox 中选择的值,这些值 $amenities 不会被修复

有时会像

  $amenities = 3,4,5,6,7,8,9,10,11,12,13,

而有时

  $amenities = 7,8,9,10,11,12,13,14,15,16,17,18,19

或者有时

$amenities = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21

表示动态场

我正在做类似的事情

$amenities = 3,4,5,6,7,8,9,10,11,12,13,
     if (strpos($amenities,'1') !== false){?>
 <li class="available_amen"> Smooking allowed</li>
  <?php }else{?>
    <li class="not_amen"> Smooking allowed</li>

     <?php }?>

问题是“1”实际上不存在,但在 10、11、12、13 中存在“1”并且 strpos 检测到存在一个并运行 if else 语句

谁能告诉我解决方案?如何解决这个问题?

4

2 回答 2

2

您不能只是1在这样的字符串中四处搜索,那里有很多 1,正如您自己注意到的那样。让它更有条理的搜索。

$search=1;
$values=explode(",",$amenities);

if(array_search($search,$values)!==FALSE)
{
   // 1 is there
}
于 2013-10-27T14:29:31.370 回答
0

假设你有:

$amenities = '7,8,9,10,11,12,13,14,15,16,17,18,19';

然后做:

$amenities = explode(',', $amenities);

if (in_array(1, $amenities)) { ?>
  <li class="available_amen"> Smooking allowed</li>
<?php } else { ?>
  <li class="not_amen"> Smooking allowed</li>
<?php }

另请参阅手册

于 2013-10-27T14:29:40.140 回答