0

我有一个 sql 字段 wehre 值就像

1,2,3,4,5,6

如果获取这些值并在下面分解它们

$amenities = 1,2,3,4,5,6
$amenities_check = explode( "," , $amenities );

然后我运行一个 foreach 循环

<?php
$i = 1;
foreach($amenities_check as $amenities_conf)
{
    if( $amenities_conf != "" && $amenities_conf == 6)
    {
    ?>
        <li class="available_amen">Smoking Allowed</li>
    <?php
    }
    else
    {
    ?>
        <li class="not_amen">Smoking Allowed</li>
    <?php
    }
    if ($i++ == 1) break;
}
?>

现在的问题是,如果我应用 $i++,此循环将显示同一行 6 次,并在遇到数据中的 6 位时显示正确的 li 类,它只检查数据集中的第一个数据。

任何帮助 foreach 寻找所需的值,如 1 2 3 并根据它执行功能..

谢谢

4

2 回答 2

0

从评论中,您真正想知道的是数组中是否有 6,因此您根本不想在循环中输出任何内容。最简单的方法是使用相当不言自明的in_array功能;就这么简单:

if( in_array('6', $amenities_conf) )
{
?>
    <li class="available_amen">Smoking Allowed</li>
<?php
}
else
{
?>
    <li class="not_amen">Smoking Allowed</li>
<?php
}

或者,通过循环一次数据库结果并根据它准备结构化数据,将您的逻辑与显示分开。对于此示例,以下内容可能有点过头了,但显示了一种通用方法:

// While retrieving data from the DB
$amenity_names = array(
     1 => 'pets',
     // ...
     6 => 'smoking'
);
$included_amenities = array();
$amenities_check = explode( "," , $amenities );
foreach ( $amenities_check as $amenity )
{
     $name = $amenity_names[$amenity];
     $included_amenities[$name] = true;
}

// In the View / template code
if( $included_amenities[['smoking'] )
{
?>
    <li class="available_amen">Smoking Allowed</li>
<?php
}
else
{
?>
    <li class="not_amen">Smoking Allowed</li>
<?php
}
于 2013-10-27T12:02:31.287 回答
0

这是你想要的?

<?php
foreach($amenities_check as $amenities_conf) {
  if ($amenities_conf == 6) {
    ?>
    <li class="available_amen">Smoking Allowed</li>
    <?php
  }
  else {
    ?>
    <li class="not_amen">Smoking Allowed</li>
    <?php
  }
}
?>

编辑:

<?php
foreach($amenities_check as $amenities_conf) {
  if ($amenities_conf == 6) {
    ?>
    <li class="available_amen">Smoking Allowed</li>
    <?php
  }
}
?>
    <li class="not_amen">Smoking Allowed</li>

或者像上面所说的那样,使用 in_array()。

<?php
if (in_array("6", $amenities_check)) {
  ?>
  <li class="available_amen">Smoking Allowed</li>
  <?php
}
?>
<li class="not_amen">Smoking Allowed</li>
于 2013-10-26T23:14:43.297 回答