在php中遇到strpos()问题

在php中遇到strpos()问题,php,Php,对所有逗号分隔的值都可以正常工作,但对Restauant不起作用。 请建议我应该怎么做 <?php $service="Restaurant,24x7_room_service,Parking,currency_exchange,deposite_boxes,Laundry,pool,gym,AC,TV,Fridge,Intercom,Intercom,Extra Bed (if needed Chargeable)"; //$dservices=str

对所有逗号分隔的值都可以正常工作,但对
Restauant
不起作用。 请建议我应该怎么做

<?php 
        $service="Restaurant,24x7_room_service,Parking,currency_exchange,deposite_boxes,Laundry,pool,gym,AC,TV,Fridge,Intercom,Intercom,Extra Bed (if needed Chargeable)";

        //$dservices=str_ireplace(',',' ',$d['services']);
        $dservices="Restaurant,24x7_room_service,Parking,currency_exchange,deposite_boxes,Laundry,pool,gym,AC,TV";
        $loop=explode(",",$service);

        foreach($loop as $action)
        {
        ?>
<li style="width:50%;float:left;padding: 10px;"><?php  if(strpos($dservices,$action)=='') { echo '<i style="color:red;" class="fa fa-times-circle"></i>';}else{ ?><i style="color:#004386;" class="fa fa-check-circle"></i> <?php } ?><?= $action ?> </li>
<?php }?>

宽度:50%;浮动:左侧;填充:10px;“>

将if条件替换为以下条件:

if(strpos($dservices, $action) === false)

将您的if状况替换为以下情况:

if(strpos($dservices, $action) === false)

因为您的餐厅位于0位置,所以对于场景来说将为真,存在,但返回值0使您的
条件为假

更改了这行代码

if(strpos($dservices,$action)=='') 


这将检查位置编号,如果不存在,则返回负值。

因为您的餐厅位于0,所以对于场景,位置将为true,但返回值0使您的
条件为false

更改了这行代码

if(strpos($dservices,$action)=='') 


这将检查位置号,如果不存在,则返回负值。

更好的方法是将
$dservices
分解到另一个数组中,而不是使用
strpos

$dservices_array = array_flip(explode(',', $dservices));
foreach ($loop as $action) {
    ?>
    <li style="width:50%;float:left;padding: 10px;">
    <?php  
    if(!isset($dservices_array[$action])) { 
        echo '<i style="color:red;" class="fa fa-times-circle"></i>';
    } else { 
        echo '<i style="color:#004386;" class="fa fa-check-circle"></i>';
    }
    echo $action;
    ?> </li>
<?php }?>
$dservices\u array=array\u flip(分解(',',$dservices));
foreach($loop as$action){
?>
宽度:50%;浮动:左侧;填充:10px;“>


使用
strpos
会导致错误匹配。例如,如果
$action
TV
并且
$dservices
包含
HDTV
更好的方法是将
$dservices
分解到另一个数组中,而不是使用
strpos

$dservices_array = array_flip(explode(',', $dservices));
foreach ($loop as $action) {
    ?>
    <li style="width:50%;float:left;padding: 10px;">
    <?php  
    if(!isset($dservices_array[$action])) { 
        echo '<i style="color:red;" class="fa fa-times-circle"></i>';
    } else { 
        echo '<i style="color:#004386;" class="fa fa-check-circle"></i>';
    }
    echo $action;
    ?> </li>
<?php }?>
$dservices\u array=array\u flip(分解(',',$dservices));
foreach($loop as$action){
?>
宽度:50%;浮动:左侧;填充:10px;“>


使用
strpos
会导致错误匹配。例如,如果
$action
TV
并且
$dservices
包含
HDTV

strpos
返回一个数字,为什么要将其与字符串进行比较?您到底想实现什么?@Niraj Gelani我用截图编辑过,请查找。因为restuarant位于0位置,对于大小写为true,但对于条件为false为什么不分解两个字符串,并在_array()中使用
strpos
返回一个数字,为什么要将其与字符串进行比较?您到底想实现什么?@Niraj Gelani我用截图编辑过,请查找。因为您的restuarant位于0位置,所以大小写为true,但条件为false为什么不分解两个字符串,并在_array()中使用
?什么是“案例真实”意思?这在英语中没有任何意义。我仍然无法解析你的解释。“案例真实”是什么意思?在英语中没有任何意义。我仍然无法解析你的解释。感谢你Niraj Gelani
===
使用此工作罚款。感谢你Niraj Gelani
==
使用此工作罚款。