在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==
使用此工作罚款。