我有一个像
这样的数据字符串$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 }?>
问题是&#39; 1&#39;实际上没有,但在10,11,12,13和#34; 1&#34;存在并且strpos检测一个存在并运行if else语句
任何人都可以告诉我解决方案吗? 如何解决这个问题?
答案 0 :(得分:2)
你不能只是在这样的字符串中搜索1
,那里有很多1你注意到自己。让它更有条理的搜索。
$search=1;
$values=explode(",",$amenities);
if(array_search($search,$values)!==FALSE)
{
// 1 is there
}
答案 1 :(得分: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 }
另见the manual。